Possible Duplicate:
Parse DateTime with timezone of form PST/CEST/UTC/etc
好的,我有以下 Java 代码,可将 Date 对象转换为 String:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz");
String str = dateFormat.format(new Date());
// outputs: 2012-12-17 15:44:57 CST
我正在通过线路将该字符串发送到用 C# 编写的 WebService。那么,考虑到以下内容不起作用,因为 C# 中的 zzz 不同,我该如何将该 String 解析回有效的 DateTime:
DateTime.ParseExact(parts[2], "yyyy-MM-dd HH:mm:ss zzz", CultureInfo.InvariantCulture.DateTimeFormat);
在有人建议之前 - 我知道我可以使用 UTC 时间,但我需要这样做。
有什么想法吗?
最佳答案
CST
不是有效的 .NET 时区标识符。
在 .NET 中,这些都是数字偏移量 - +0700
、-0500
等...
如果您希望 .NET 解析它,则需要输出数字时区偏移量。
我建议在Java中使用yyyy-MM-dd HH:mm:ss Z
,如here所示。 .
另一种方法是使用 string.Replace
将 CST
转换为 -0600
,但这既不可扩展,也可能会因命名时区的歧义(CST
可能意味着不同的时区,具体取决于您所在的位置)。
关于c# - 将 Java 日期字符串转换为 C# 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13922833/