这是我正在尝试格式化的日期时间格式。我从twitter 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.
答案 0 :(得分:7)
这有效:
DateTime.ParseExact(dtStr, "ddd MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture)
ParseExact
和TryParseExact
允许使用custom format string。 ddd
是缩写的日期名称,MMM
缩写的月份名称,dd
日期编号,HH
小时,24小时制,mm
分钟,{{ 1}}秒,ss
time-zone和zzzz
年。
我已使用yyyy
指定当前文化未使用,但CultureInfo.InvariantCulture
与InvariantCulture
类似。
工作但是从我尝试的代码行中获取日期之后 date.ToString(“dd / mm / yyyy”)但是得到字符串为12-12-2013,没有 斜线
"en-US"
是当前文化的日期分隔符的替换字符,显然是/
。因此,也可以使用-
指定在不使用当前文化的情况下使用分隔符:
CultureInfo.InvariantCulture
答案 1 :(得分:2)
试试这个
DateTime.ParseExact(YourDate, "ddd MMM dd HH:mm:ss KKKK yyyy", CultureInfo.InvariantCulture)
使用不变文化比使用当前文化更好
答案 2 :(得分:1)
您正在尝试转换非标准格式,因此请使用:
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);
或为您的输入构建正确的格式。
答案 3 :(得分:0)
您的日期字符串必须是:
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);
答案 4 :(得分:0)
怎么样;
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
了解此处的时区信息。
查看更多信息;
答案 5 :(得分:0)
尝试使用DateTime.ParseExact。
string date = "Thu Jul 18 17:39:53 +0000 2013"
DateTime date = DateTime.ParseExact(date, "dd/MM/yyyy", null);
答案 6 :(得分:0)
this.Text =&#34 22 /2009分之11&#34 ;;
DateTime date = DateTime.ParseExact(this.Text," dd / MM / yyyy",null);