错误:在 c# 中转换为日期格式时,字符串未被识别为有效的日期时间
本文关键字:日期 字符串 识别 时间 有效 格式 错误 转换 | 更新日期: 2023-09-27 18:30:01
这是我尝试格式化的日期时间格式。我从推特 apis 获得这种日期格式
string date = "Thu Jul 18 17:39:53 +0000 2013"
我试过了
Convert.ToDateTime(date).ToString("dd/MM/yyyy")
但它说String was not recognized as a valid DateTime.
这有效:
DateTime.ParseExact(dtStr, "ddd MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture)
ParseExact
和TryParseExact
允许使用自定义格式字符串。 ddd
是缩写的日期名称,MMM
缩写的月份名称,dd
日期数字,24小时制的HH
小时,mm
分钟,ss
秒,zzzz
时区和yyyy
年份。
我使用CultureInfo.InvariantCulture
来指定不使用当前文化,而是使用类似于"en-US"
的InvariantCulture
。
演示
有效,但在从您的代码行中获取日期后,我试图这样做 日期。ToString("dd/mm/yyyy"(,但获取字符串为 12-12-2013,否 斜线
/
是当前区域性的日期分隔符的替换字符,这显然是-
。因此,还要使用 CultureInfo.InvariantCulture
指定应在不使用当前区域性的情况下使用分隔符:
string result = dateTime.ToString("dd/mm/yyyy", CultureInfo.InvariantCulture);
请参阅:"/"自定义格式说明符
试试这个
DateTime.ParseExact(YourDate, "ddd MMM dd HH:mm:ss KKKK yyyy", CultureInfo.InvariantCulture)
使用固定区域性比使用当前区域性更好
您正在尝试转换非标准格式,因此请使用以下命令:
string dateStr = "Thu Jul 18 17:39:53 +0000 2013";
DateTime date = DateTime.ParseExact(dateStr, "ddd MMM dd h:mm:ss KKKK yyyy", System.Globalization.CultureInfo.InvariantCulture);
或者为您的输入构建正确的格式。
喜欢怎么样;
string date = "Thu Jul 18 17:39:53 +0000 2013";
DateTime dt = DateTime.ParseExact(date, "ddd MMM dd HH:mm:ss KKKK yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(dt);
输出将是;
18.07.2013 20:39:53
K
此处的时区信息。
查看更多信息;
- 自定义日期和时间格式字符串
您的日期字符串必须是这样的:
Thu Jul 18 2013 17:39:53 +0000
生成字符串的任何内容都需要在月份和日期之后以及时间之前具有年份值,如上所述。
string date = "Thu Jul 18 2013 17:39:53 +0000";
var theDate = Convert.ToDateTime(date);
注意:这将生成有效的 .NET DateTime
对象。
更新:
如果无法更改生成的字符串,请使用具有自定义格式的 ParseExact
方法,如下所示:
string date = "Thu Jul 18 17:39:53 +0000 2013";
var theDate = DateTime.ParseExact(date, "ddd MMM dd H:mm:ss zzz yyyy", CultureInfo.InvariantCulture);
尝试使用 DateTime.ParseExact。
string date = "Thu Jul 18 17:39:53 +0000 2013"
DateTime date = DateTime.ParseExact(date, "dd/MM/yyyy", null);
这个。文本="22/11/2009";
DateTime date = DateTime.ParseExact(this.文本,"日/月/年",空(;