gpt4 book ai didi

C# 字符串到带时区的 DateTime

转载 作者:可可西里 更新时间:2023-11-01 08:33:39 25 4
gpt4 key购买 nike

我想将字符串“2012-04-20 10:10:00+0200”格式化为具有这种格式的日期时间。所以我认为它一定是“yyyy-MM-dd hh:mm:ss zzz”?

当我尝试这个的时候

   // starttime =  {20/04/2012 10:10:00} without my +0200!
DateTime starttime = Convert.ToDateTime("2012-04-20 10:10:00+0200",CultureInfo.CurrentCulture);
// And this gave me a format exception : {System.FormatException: String was not recognized as a valid DateTime.
DateTime result = DateTime.ParseExact("2012-04-20 10:10:00+0200", "yyyy-MM-dd hh:mm:ss zzz", CultureInfo.InvariantCulture);

“V4Vendetta”给出的解决方案:

您应该尝试使用 DateTimeOffset 而不是 DateTime

DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture);

在这里你也得到了偏移量(2 小时),它可以用你的日期时间(10:10)值计算并得到你想要的输出(result.DateTime + result.Offset)

最佳答案

您应该尝试使用 DateTimeOffset 而不是 DateTime

DateTimeOffset result = DateTimeOffset.Parse("2012-04-20 10:10:00+0200",CultureInfo.InvariantCulture);

在这里你也得到了 Offset(2 小时),它可以用你的 DateTime(10:10)值计算并得到你想要的输出(result.DateTime + result.Offset)

关于C# 字符串到带时区的 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10293362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com