2

可能重复:
使用 PST/CEST/UTC/等形式的时区解析 DateTime

好的,我在 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。那么,考虑到以下不起作用,我将如何将该字符串解析回有效的 DateTime,因为C# 中的zzz是不同的:

DateTime.ParseExact(parts[2], "yyyy-MM-dd HH:mm:ss zzz", CultureInfo.InvariantCulture.DateTimeFormat);

在任何人建议之前 - 我知道我可以使用 UTC 时间,但我需要这样做。

有任何想法吗?

4

1 回答 1

2

CST不是有效的 .NET 时区标识符。

在 .NET 中,这些都是数字偏移量 -+0700-0500...

如果您希望 .NET 对其进行解析,则需要输出一个数字时区偏移量。

我建议yyyy-MM-dd HH:mm:ss Z在 Java 中使用,可以在这里看到。

另一种方法是转换CST-0600using string.Replace,但这既不可扩展,也可能会因命名时区的模糊性而崩溃(CST可能意味着不同的时区,具体取决于您所在的位置)。

于 2012-12-17T21:55:27.233 回答