我有一个时区String类型,我想在 Swift 4 中的这个时区获取日期(带格式dd:mm:yyyy)和时间(带格式hh:mm:ss)。我该怎么做?
我看过日历库,但我不明白如何查看它来解决我的问题。
如何将我的时间从 2010-12-30 23:21:46 转换为 ISO 8601 日期格式?
我试过了$datetime->format(DateTime::ATOM),date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'))它转换成 ISO8601 格式,如2016-12-31T09:47:50+0000. 但我需要的是2018-02-19T05:43:59.753000Z格式。我怎样才能使用 PHP 实现?
我需要获取某个位置的 UTC 偏移量。我因不同值的结果不一致而遇到麻烦。我需要获取的只是格式中的值+HHMM(例如,+0100“欧洲/罗马”)。
func main() {
    loc, _:= time.LoadLocation("Asia/Kathmandu")
    offset, others:= time.Now().In(loc).Zone()
    fmt.Println(offset, others)
}
Run Code Online (Sandbox Code Playgroud)
我得到什么:
+0545合适)+07应该是+0700)MST应该是-0700)CET应该是+0100)我现在在 +3 时区。
现在 UTC 时间是 16:30 而在我这里是 19:30
我发现了一个时区问题 America/Los_Angeles
理论上是 -8 (rawOffset) 我得到了意想不到的时间。我预计如果在我的地方 20:00,那么在这个 timezoe 时间应该少 11 小时(8+3),但在现实生活中,由于夏令时,它比我的地方少 10 小时。
那么如果America/Los_Angeles我的代码中有zoneId ,我怎么能得到 -7 偏移量呢?
TimeZone.getTimeZone("America/Los_Angeles").getRawOffset()/(3600*1000)
Run Code Online (Sandbox Code Playgroud)
返回 -8 但现在它与 UTC 不同 7 小时
如何使用PHP在Windows服务器上获取服务器时区?
对于linux:
$systemTimeZone = system('date +%Z');
Run Code Online (Sandbox Code Playgroud)
*nix系统:
$systemTimeZone = popen("date +%Z");
Run Code Online (Sandbox Code Playgroud)
视窗:
$systemTimeZone = ???
Run Code Online (Sandbox Code Playgroud)
greez&thx,sky ...
编辑:我知道的PHP功能如下:
date_default_timezone_get()
date('T')
\DateTime::timezone
Run Code Online (Sandbox Code Playgroud)
但PHP的所有这些内置函数都参考了php.ini中的设置.我想知道操作系统中真正使用的时区.
我试图使用Windows命令行工具
systeminfo
Run Code Online (Sandbox Code Playgroud)
但这对于调用和解析来说是缓慢的.我有testet的另一个命令行工具是:
tzutil /g
Run Code Online (Sandbox Code Playgroud)
这不是我想要的时区格式,在我的情况下,我得到这个:
$:> tzutil /g
W. Europe Standard Time
Run Code Online (Sandbox Code Playgroud)
还有其他任何想法吗?
我有一个审计线索,其中列出了用户进入/退出时间的日期和时间.是否有可能甚至我改变了系统的日期和时间.它忽略了我更改的系统日期/时间,并记录用户的实际日期和时间.
这是我的代码.
dbAuditTrail.AddActionLog(userID, timeIn, DateTime.Now.ToString("MM/dd/yyyy - hh:mm:ss tt"));
Run Code Online (Sandbox Code Playgroud) 我已将时区转换为"欧洲/伦敦",打印出来:2017-07-27 12:39:07 + 01:00作为伦敦时间是正确的.
但是如何让这个打印时间加上+01:00,所以在这种情况下它会是13.39.07?这是我正在使用的功能:
def utc_to_london(utc_dt):
        tz = pytz.timezone('Europe/London').localize(utc_dt)
        print(tz)
        return tz;
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
我正在研究一个用vanilla PHP编写的古老系统.
我有一些时间转换问题.
在下面的例子中,我希望时间戳和"漂亮日期"能够相互反映:
<?php
date_default_timezone_set( 'Europe/London' );
$timestamp = 1509062400; //Friday, October 27, 2017 12:00:00 AM
$date = new DateTime();
$date->setTimezone( new DateTimeZone( 'Europe/London' ) );
$date->setTimestamp( $timestamp + 3601 );
$date->setTime( 0, 0 );
echo $date->getTimestamp();
echo '<br/>';
echo $date->format( 'Y-m-d H:i:s' );
Run Code Online (Sandbox Code Playgroud)
但是,在服务器上运行此脚本时,结果如下:
Timestamp: 1509058800
Pretty Date: 2017-10-27 00:00:00
Run Code Online (Sandbox Code Playgroud)
漂亮的日期代表10月27日00:00,但时间戳(根据epochconvertor)代表10月26日23:00.
我不确定为什么时间戳会慢一个小时.有人可以帮忙吗?
我刚刚在云服务器(阿里巴巴云)上运行 python 应用程序时收到此问题主题的错误。知道如何在 Ubuntu 上解决这个问题吗?