1

当我有以下时间时,谁能解释一下这意味着什么:

2012-12-28T18:12:33+01:00

我对整个日期时间的东西都很陌生,我在网上找不到很好的解释。

目前我在荷兰。这是否意味着:

2012-12-28T18:12:33+01:00 = 2012-12-28 19:12:33

或者

2012-12-28T18:12:33+01:00 = 2012-12-28 17:12:33

或者

2012-12-28T18:12:33+01:00 = 2012-12-28 18:12:33

4

3 回答 3

1

日期字符串表示它是 2012 年 12月2012-12-28T18:12:33+01:0028 日 18:12 在对应于 UTC +1 小时的时区,即 CET 时区。

这似乎是ISO 8601 格式。指示时间元素的T开始。

时间以本地时间以及以小时和分钟为单位的时区偏移量表示。“+hh:mm”的时区偏移表示日期/时间使用的本地时区比 UTC 早“hh”小时和“mm”分钟。“-hh:mm”的时区偏移表示日期/时间使用的是本地时区,比 UTC 晚“hh”小时和“mm”分钟。

于 2013-04-30T19:32:29.673 回答
1

您提供的值是ISO86012012-12-28T18:12:33+01:00格式的DateTime+Offset值,意思是“2013 年 12 月 12 日 18:12:33,UTC 早一小时”。

+01:00部分表示偏移量,而不是时区。请参阅时区!= 偏移量

荷兰的时区Europe/Amsterdam在 IANA/Olson 数据库中,或者在Windows 数据库中具有 IDW. Europe Standard Time和英文显示名称“(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm,维也纳”。

该区域在+01:00一年中的部分时间处于偏移量中,并+02:00在欧洲夏令时使用偏移量。

仅仅因为你有+01:0012 月,并不意味着这是全年使用的正确偏移量。它也没有告诉您时间戳在荷兰。还有几个其他时区使用相同的偏移量,而且并不总是在一年中的同一时间。

要从一个时区转换到另一个时区,您需要首先应用您拥有的偏移量。使用你所拥有的符号的倒数。既然你有+01:00,你会减去一个小时来获得 UTC 时间17:12:33。然后,您需要知道一年中那个时候目标时区的正确偏移量是多少。为此,您需要一个时区数据库

于 2013-04-30T20:02:07.923 回答
0

国际标准ISO 8601规定了日期和时间的数字表示。

YYYY-MM-DDThh:mm:ss.sTZD(例如 1997-07-16T19:20:30.45+01:00)其中:

 YYYY = four-digit year
 MM   = two-digit month (01=January, etc.)
 DD   = two-digit day of month (01 through 31)
 hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
 mm   = two digits of minute (00 through 59)
 ss   = two digits of second (00 through 59)
 s    = one or more digits representing a decimal fraction of a second
 TZD  = time zone designator (Z or +hh:mm or -hh:mm)

时间以 UTC(协调世界时)表示,带有一个特殊的 UTC 指示符(“Z”)。时间用 表示local time,连同以小时和分钟为单位的时区偏移量。时区偏移量 "+hh:mm" 表示日期/时间使用的本地时区比 UTC 早 "hh" 小时和 "mm" 分钟。“-hh:mm”的时区偏移表示日期/时间使用的local time区域比 UTC 晚“hh”小时和“mm”分钟。

在您的情况下: 2012-12-28T18:12:33+01:00 = 2012-12-28 18:12:33 是真的。这意味着荷兰的时间是 18:12,您比 UTC 早 1 小时。

于 2013-04-30T19:57:45.153 回答