日期时间格式化时区

5
我有一个DateTime对象。我想返回一个格式如下的字符串:
Thu, 06 June 2010 16:00:00 +0200
以下是我的代码:
DateTime.Now.ToString("ddd, dd MMMM yyyy HH:mm:ss zzz");

结果:

2010年6月10日星期四,欧洲中部时间下午6:33:14

有没有内置的方法可以获取时区差异的格式化输出,不带冒号?(不手动去掉冒号。不知道是否会有任何问题,如果这样做)


好问题(+1)。我也想知道。我需要知道日期所在的时区。我们有一个Java系统,其中有许多日期调整 - 但我一直希望.NET框架中会内置一些东西来处理这个问题。 - Andez
2个回答

3
请注意,您可以使用“o”来获取带有时区的完整日期时间。这对于日志记录非常有用。
DateTime.Now.ToString("o") => 2012-08-17T17:31:19.7538909+08:00

2

看起来(我已经搜索过),除了操作结果字符串之外,似乎没有其他方法。如果您使用 zz ,则仅获得“+02”,然后您可以附加00,而不是“搜索”(正则表达式或其他)最后的冒号并剥离它。 DateTimeFormatInfo 允许知道h:m:s,d / m / y的分隔符,但不包括时区; 此外,如果DateTimeFormatInfo.TimeSeparator也影响时区(即h:m),则不能搜索:因为它可能无法在所有语言环境上工作,应该搜索DateTimeFormatInfo.TimeSeparator代替; 或zz并在末尾添加00 ... 目前,这就是我的想法,希望能帮到您。


它可能是http://www.worldtimezone.com/wtz014.php,但zz仅返回+04。这取决于保留正确的时区有多重要。如果需要正确的精确时间,请去掉“:”,否则允许误差为+/- 30分钟。 - ShinTakezou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接