我有这些日期时间,在我看来这是一种奇怪的标准..
2004年5月17日21:27:16.162格林尼治标准时间-7
2006/08/01 01:00:00 GMT-7
2010/11/05 13:00:38.844美国/太平洋
对如何在C#中解析它们有什么想法吗?或者以前有人见过他们吗?
发布于 2011-09-24 21:23:25
2010/11/05 13:00:38.844 US/Pacific是不能用纯.Net解析的东西,至少不能以本地化形式解析。对于其他人来说,这真的取决于你是否知道格式。如果这样做,您可以使用DateTime的ParseExact()方法:
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。
最后但并非最不重要的一点是:为什么要解析这些无效的格式?我建议解决问题的根源,并使用本地默认格式(取决于文化以及当前用户所在位置的本地时间),而不是创建自己的格式。特殊的格式使得理解时间变得更加困难,因为它们对最终用户来说是不自然的。
发布于 2011-09-24 19:49:36
也许您可以看看这个主题,它告诉您如何格式化日期时间
但我想你要找的是DateTimeOffset Convertsion between DateTime and DateTimeOffset
https://stackoverflow.com/questions/7538783
复制相似问题