2

这是我尝试格式化的日期时间格式。我从 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.

4

7 回答 7

7

这有效:

DateTime.ParseExact(dtStr, "ddd MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture)

ParseExactTryParseExact允许使用自定义格式字符串ddd是缩写的日期名称、MMM缩写的月份名称、dd日期编号、HH24 小时制时钟格式的小时、mm分钟、ss秒、zzzzyyyy年份。

我曾经CultureInfo.InvariantCulture指定不使用当前文化,但InvariantCulture类似于"en-US".

Demo

有效,但在从您的代码行获取日期后,我尝试执行 date.ToString("dd/mm/yyyy") 但将字符串设为 12-12-2013,没有斜杠

/是您当前文化的日期分隔符的替换字符,显然是-. 因此,也可以使用CultureInfo.InvariantCulture来指定应在不使用当前文化的情况下使用分隔符:

string result = dateTime.ToString("dd/mm/yyyy", CultureInfo.InvariantCulture);

请参阅:“/”自定义格式说明符

于 2013-09-02T07:15:55.870 回答
2

试试这个

  DateTime.ParseExact(YourDate, "ddd MMM dd HH:mm:ss KKKK yyyy", CultureInfo.InvariantCulture)

使用不变文化比使用当前文化更好

于 2013-09-02T07:23:19.740 回答
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);

或者为您的输入构建正确的格式。

于 2013-09-02T07:15:41.180 回答
0

您的日期字符串需要是这样的:

Thu Jul 18 2013 17:39:53 +0000

无论生成什么字符串,都需要在月份和日期之后和时间之前具有年份值,如上所示。

string date = "Thu Jul 18 2013 17:39:53 +0000";
var theDate = Convert.ToDateTime(date);

注意:这将产生一个有效的 .NETDateTime对象。

更新:

如果您无法更改生成的字符串,请使用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);
于 2013-09-02T07:13:02.320 回答
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在此处获取时区信息。

查看更多信息;

于 2013-09-02T07:17:02.657 回答
0

尝试使用 DateTime.ParseExact。

  string date = "Thu Jul 18 17:39:53 +0000 2013" 
  DateTime date = DateTime.ParseExact(date, "dd/MM/yyyy", null);
于 2013-09-02T07:25:59.687 回答
0

this.Text="22/11/2009";

DateTime 日期 = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);

于 2014-08-26T06:54:36.067 回答