我试图解析Mon, 11 Mar 2019 09:13:16 +0100到2019-03-11T09:13:16
string dataa = "Mon, 11 Mar 2019 09:13:16 +0100";
DateTime d = new DateTime();
d = DateTime.ParseExact(dataa,"yyyy-MM-ddTHH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine("data: "+d);
Run Code Online (Sandbox Code Playgroud)
但是错误是:
无法将字符串识别为有效的DateTime。
是否存在任何自动进行此解析的方法?谢谢大家。
使用时ParseExact,您的字符串和格式应完全匹配。
正确的格式为:(ddd, d MMM yyyy hh:mm:ss zzz或HH取决于您的小时格式)
解析后,您需要使用来使用ToStringformat yyyy-MM-dd'T'hh:mm:ss格式化(或HH取决于您要使用12小时制还是24小时制)
我认为我必须添加一些很多人容易混淆的解释(特别是对于编程的初学者)。一个DateTime实例根本不具有任何格式。它只有日期和时间值,基本上是一个称为的数字值Ticks。当您谈论“格式”概念时,它指向的是文本表示形式string。
因为您对“说” Mon, 11 Mar 2019 09:13:16 +0100了2019-03-11T09:13:16,所以我(可能还有很多人)假设您有一个字符串as,Mon, 11 Mar 2019 09:13:16 +0100并且您希望从中获得2019-03-11T09:13:16一个字符串。为此,您需要首先将字符串解析为DateTime。为此,就像您所做的那样,ParseExact是一种选择。
将其解析为时DateTime,将得到它的文本表示形式,即string带有ToString方法的。此方法有一些重载,应该使用ToString(String, IFormatProvider)重载。这样,您可以将输出格式指定为第一个参数,将区域性信息指定为第二个参数,这可能会由于:和/格式说明符而影响结果字符串,因为它们可以根据当前区域性或所提供的区域性进行更改。
进一步阅读:自定义日期和时间格式字符串
| 归档时间: |
|
| 查看次数: |
422 次 |
| 最近记录: |