如何在 c 中使用 GMT 将字符串解析为日期时间#

How to parse a string with GMT into datetime in c#

提问人:mo_maat 提问时间:5/13/2023 最后编辑:Enigmativitymo_maat 更新时间:5/13/2023 访问量:92

问:

我有这个inputDateString:,我想将其转换为datetime。15/03/2023 15:13:37 GMT

我正在这样做:DateTime outputDate = DateTime.ParseExact(inputDateString, "MM/dd/yyyy:hhmmss \"GMT\"", CultureInfo.InvariantCulture);

我收到此错误:c# String '10/05/2023 18:19:27 GMT' was not recognized as a valid DateTime.

如何将此日期字符串转换为日期时间?

C# 日期分析

评论

0赞 gunr2171 5/13/2023
虽然您可能仍然需要调整格式,但我建议解析为 DateTimeOffset 而不是 DateTime。
0赞 gunr2171 5/13/2023
您当前的计算机处于哪个时区?您是否总是得到以“GMT”结尾的输入字符串?
0赞 mo_maat 5/13/2023
是的,我总是会得到以“GMT”结尾的输入字符串。

答:

1赞 abolfazl sadeghi 5/13/2023 #1

你的格式日期不正确,这个代码是正确的,更好但你必须指定时区

DateTime outputDate = DateTime.ParseExact("15/03/2023 15:13:37 GMT", "dd/MM/yyyy HH:mm:ss GMT", CultureInfo.InvariantCulture);

评论

0赞 mo_maat 5/13/2023
有没有办法在保持日期的同时格式化输出?例如,现在输出采用以下格式: ,但我希望它采用以下格式:Feb 28 2023 6:29AM2023-05-13 01:40:34
0赞 abolfazl sadeghi 5/13/2023
如果这就是您的意思,当我们将其转换为字符串时,它应该采用该格式。您可以使用此代码 “outputDate.ToString(”yyyy-MM-dd HH:mm:ss“)”
0赞 mo_maat 5/13/2023
我正在保存到 sql 表日期字段。我希望我发送到sql的值是格式为的日期,而不是字符串。2023-05-13 01:40:34
0赞 abolfazl sadeghi 5/13/2023
如果您将日期发送到数据库,它将作为日期发送,并且它将在那里已知并且可以使用格式
0赞 ldvtlucas 5/13/2023 #2
var date = DateTime.ParseExact("15/03/2023 15:13:37 GMT", "dd/MM/yyyy HH:mm:ss GMT", CultureInfo.InvariantCulture);

应该做从字符串解析为 DateTime 的技巧。如果你想弄乱时区,我建议你阅读有关该课程的信息。DateTimeOffset

有了 DateTime 类,您可以按照需要的方式将其解析为字符串,传递所需的格式:

Console.WriteLine( date.ToString("yyyy-MM-dd HH:mm:ss"));