将 Java Date 字符串转换为 C# DateTime



可能的重复项:
使用格式为 PST/CEST/UTC/等形式的时区解析日期时间

好的,我在 Java 中有以下代码将我的 Date 对象转换为字符串:

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 是不同的,我将如何将该字符串解析回有效的 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,如下所示。

另一种方法是使用 string.ReplaceCST转换为-0600,但这既不可扩展,又可能因命名时区的歧义而失效(CST可能意味着不同的时区,具体取决于您所在的位置)。

最新更新