当我有以下时间时,有人能解释一下这意味着什么:
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
答案 0 :(得分:1)
2012-12-28T18:12:33+01:00
日期字符串表示时区中的2012-12-28 at 18:12对应于UTC的+1小时,即CET时区。
这似乎是ISO 8601 format。 T
表示时间元素的开始。
时间以当地时间表示,并且时区偏移量为 小时和分钟。时区偏移量“+ hh:mm”表示该值 日期/时间使用当地时区,即“hh”小时和“mm”分钟 在UTC之前。时区偏移“-hh:mm”表示 日期/时间使用当地时区,即“hh”小时和“mm”分钟 在UTC之后。
答案 1 :(得分:1)
您提供的值2012-12-28T18:12:33+01:00
是DateTime+Offset格式的ISO8601值,意思是“2013年12月12日18:12:33,提前一小时 > UTC的。“
+01:00
部分代表偏移,而非时区。请参阅TimeZone != Offset。
Holland的时区是IANA / Olson数据库中的Europe/Amsterdam
,或Windows database中Id为W. Europe Standard Time
且英文显示名称为“的a time zone database中的条目( UTC + 01:00)阿姆斯特丹,柏林,伯尔尼,罗马,斯德哥尔摩,维也纳“。
此区域在一年中的部分时间内处于+01:00
偏移量,并在欧洲夏令时使用+02:00
偏移量。
仅仅因为你在12月份有+01:00
,并不意味着这是全年使用的正确偏移量。它也没有告诉你时间戳在荷兰。还有其他几个时区使用相同的偏移量,并不总是在一年中的同一时间。
要从一个时区转换为另一个时区,您需要先应用您拥有的偏移量。使用您拥有的符号的反转。由于您有+01:00
,因此您将减去一小时以获得17:12:33
的UTC时间。然后,您需要知道一年中该时间的目标时区的正确偏移量。为此,您需要{{3}}。
答案 2 :(得分: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”表示日期/时间使用本地时区,即“hh”小时和UTC之前的“mm”分钟。时区偏移“-hh:mm”表示日期/时间使用的local time
区域为“hh”小时,“mm”分钟落后于UTC。
在你的情况下:2012-12-28T18:12:33 + 01:00 = 2012-12-28 18:12:33是真的。这意味着在荷兰的时间是18:12,你比UTC早1小时。