如何使用c#将var转换为日期时间?

时间:2014-05-29 06:28:57

标签: c# date datetime

我想将var转换为数据和时间如何做到

var t = (from li in list2 select li).Max();

上面的代码给我一个输出2014-06-03 10:07:31 AM现在我想将其转换为'03_06_2014_10_07_31'

所以首先我尝试使用下面的格式将格式更改为'MM/dd/yyyy HH:mm:ss',以便我可以使用某些拆分等等并将其设为'03_06_2014_10_07_31'

DateTime dfg = DateTime.ParseExact(t, "MM/dd/yyyy HH:mm:ss", 
                                   CultureInfo.InvariantCulture);

但它显示

  

字符串未被识别为有效的DateTime。

我想将2014-06-03 10:07:31 AM更改为03_06_2014_10_07_31

1 个答案:

答案 0 :(得分:4)

DateTime没有隐式格式,只是DateTime值。您可以将其格式化为string值。

来自DateTime.ParseExact method

  

将指定的日期和时间字符串表示形式转换为它   DateTime等效使用指定的格式和特定​​于文化   格式信息。 字符串表示的格式必须匹配   完全符合指定的格式。

在你的情况下,他们不是。

改为使用yyyy-dd-MM HH:mm:ss tt格式。

这是LINQPad;

中的示例
string s = "2014-06-03 10:07:31 AM";
DateTime dfg = DateTime.ParseExact(s, "yyyy-dd-MM HH:mm:ss tt",
                                   CultureInfo.InvariantCulture);
dfg.Dump();

这里有 demonstration

之后,您可以使用.ToString()方法格式化DateTime;

dfg.ToString("MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

打印03/06/2014 10:07:31

dfg.ToString("MM_dd_yyyy_HH_mm_ss", CultureInfo.InvariantCulture);

打印03_06_2014_10_07_31