2010-06-10 147 views
5

我有一个DateTime对象。我想返回格式化为下面这一个字符串:格式日期时间时区

星期四,2010 6月06日16:00:00 +0200

这是我到目前为止的代码:

DateTime.Now.ToString("ddd, dd MMMM yyyy HH:mm:ss zzz"); 

结果:

星期四,10六月2010 18时33分14秒+02:00

有没有一种内置的方式来获得格式化时区差异没有:? (不知道是否有任何并发​​症,如果我这样做)

+0

好问题(+1)。我也想知道的。我需要知道日期是在哪个时区。我们有一个Java系统,里面有许多日期模糊 - 但我一直希望有一些东西会被内置到.net框架中来执行此操作。 – Andez 2011-06-01 08:06:44

回答

1

似乎(我搜索),没有办法分开操纵结果字符串。如果你使用zz,你只能得到“+02”,但是......然后你可以追加00,而不是“搜索”(正则表达式或其他),然后去掉它。 DateTimeFormatInfo允许知道h:m:s,d/m/y但不是时区的分隔符;此外,如果DateTimeFormatInfo.TimeSeparator也影响时区(即h:m),则无法搜索:由于它无法在所有区域设置上运行,因此应该搜索DateTimeFormatInfo.TimeSeparator;或zz并在最后加上00 ......现在,这些都是我的想法来帮助你。

+0

它可能是(它是http://www.worldtimezone.com/wtz014.php)...但zz只返回+04。这取决于保留正确的确切时区有多重要。如果需要正确的精确时间,则剥离:,否则可接受+/- 30分钟的误差 – ShinTakezou 2010-06-10 17:09:18

3

请注意,您可以使用“o”与时区具有完整的日期时间。它可以是有用的日志的东西。

DateTime.Now.ToString("o") => 2012-08-17T17:31:19.7538909+08:00