gpt4 book ai didi

c# - 如何使用 Convert.ChangeType 不考虑时区将字符串转换为日期时间

转载 作者:行者123 更新时间:2023-11-30 16:54:29 25 4
gpt4 key购买 nike

此代码将时区添加到 DateTime,在实际场景中,此代码位于一个通用函数内,用于将字符串转换为各种类型。所以我需要一个适用于所有类型的通用代码:

DateTime d = DateTime.MinValue;
string s = "2006-10-31T11:17:50Z";
d = (DateTime)Convert.ChangeType(s, typeof(DateTime),CultureInfo.InvariantCulture);

在我的 +1 时区 d 的电脑上是:{31/10/2006 12:17:50}

有没有办法忽略时区?

我不能使用 DateTime.ParseDateTime.ParseExact

最佳答案

我猜你收到了你想要转换成的类型作为参数,这就是你不能使用 DateTime.Parse 的原因......但是您至少可以测试类型吗?类似的东西不是最漂亮的,但应该可以工作:

var s = "2006-10-31T11:17:50Z";
var t = typeof(DateTime);
var d = Convert.ChangeType(s, t, CultureInfo.InvariantCulture);

if (t == typeof(DateTime))
d = TimeZoneInfo.ConvertTimeToUtc((DateTime)d);

Console.WriteLine(d.ToString());

输出

10/31/2006 11:17:50 AM

关于c# - 如何使用 Convert.ChangeType 不考虑时区将字符串转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30477843/

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