哪种日期和时间格式与其他平台最兼容?

时间:2009-07-07 12:39:40

标签: c# .net datetime

我想使用日期时间格式字符串(可能是UTC),它可以在尽可能多的平台和语言上理解和解析吗?至少PHP,Python,Perl,Java,Rails和一些常见的C ++库应该能够理解它。

我应该使用哪一个?

来自MSDN的示例:

Culture:                      English (United States)

(d) Short date: . . . . . . . 4/17/2006
(D) Long date:. . . . . . . . Monday, April 17, 2006
(t) Short time: . . . . . . . 2:29 PM
(T) Long time:. . . . . . . . 2:29:09 PM
(f) Full date/short time: . . Monday, April 17, 2006 2:29 PM
(F) Full date/long time:. . . Monday, April 17, 2006 2:29:09 PM
(g) General date/short time:. 4/17/2006 2:29 PM
(G) General date/long time (default):
    . . . . . . . . . . . . . 4/17/2006 2:29:09 PM
(M) Month:. . . . . . . . . . April 17
(R) RFC1123:. . . . . . . . . Mon, 17 Apr 2006 21:29:09 GMT
(s) Sortable: . . . . . . . . 2006-04-17T14:29:09
(u) Universal sortable (invariant):
    . . . . . . . . . . . . . 2006-04-17 21:29:09Z
(U) Universal full date/time: Monday, April 17, 2006 9:29:09 PM
(Y) Year: . . . . . . . . . . April, 2006
(o) Roundtrip (local):. . . . 2006-04-17T14:29:09.3011250-07:00
(o) Roundtrip (UTC):. . . . . 2006-04-17T21:29:09.3011250Z
(o) Roundtrip (Unspecified):. 2000-03-20T13:02:03.0000000

4 个答案:

答案 0 :(得分:8)

坚持使用ISO8601,你不会出错。

优选地,YYYYMMDD HH:mm:ss [TZ]格式,因为它是最广泛使用的。

如果您要将应用程序的表示层的本地时间与内部存储时间分离,那么当然还有UTC“在幕后”。

答案 1 :(得分:4)

往返格式符合ISO 8601。我会用它们。

答案 2 :(得分:3)

ISO 8601是要走的路。有关有用的介绍,请参阅this document。我建议你要指定时区以及日期/时间。

答案 3 :(得分:2)

我也会使用ISO 8601,或简单地使用(unix_time ??)格式,这是自1970年1月1日00:00以来的秒数 - 你总是可以解析它以获得所需的时间(即使这是多一点努力)