首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用时区偏移量解析Datetime

使用时区偏移量解析Datetime
EN

Stack Overflow用户
提问于 2011-09-24 19:43:16
回答 2查看 201关注 0票数 1

我有这些日期时间,在我看来这是一种奇怪的标准..

2004年5月17日21:27:16.162格林尼治标准时间-7

2006/08/01 01:00:00 GMT-7

2010/11/05 13:00:38.844美国/太平洋

对如何在C#中解析它们有什么想法吗?或者以前有人见过他们吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-24 21:23:25

2010/11/05 13:00:38.844 US/Pacific是不能用纯.Net解析的东西,至少不能以本地化形式解析。对于其他人来说,这真的取决于你是否知道格式。如果这样做,您可以使用DateTime的ParseExact()方法:

代码语言:javascript
复制
var dateString = "2004/05/17 21:27:16.162 GMT-7";
var anotherDateString = "2006/08/01 01:00:00 GMT-7";
DateTime firstResult;
var success = DateTime.TryParseExact(dateString, "yyyy/MM/dd HH:mm:ss.fff 'GMT'z", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out firstResult);
if (success)
    MessageBox.Show(firstResult.ToString());

DateTime anotherResult;
success = DateTime.TryParseExact(anotherDateString, "yyyy/MM/dd HH:mm:ss 'GMT'z", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out anotherResult);
if (success)
    MessageBox.Show(anotherResult.ToString());

请记住,我使用InvariantCulture是因为我知道它与en-US完全相同。为了获得正确的结果,您需要使用有效的CultureInfo。

最后但并非最不重要的一点是:为什么要解析这些无效的格式?我建议解决问题的根源,并使用本地默认格式(取决于文化以及当前用户所在位置的本地时间),而不是创建自己的格式。特殊的格式使得理解时间变得更加困难,因为它们对最终用户来说是不自然的。

票数 0
EN

Stack Overflow用户

发布于 2011-09-24 19:49:36

也许您可以看看这个主题,它告诉您如何格式化日期时间

DateTime Localization

但我想你要找的是DateTimeOffset Convertsion between DateTime and DateTimeOffset

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7538783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档