将日期格式解析为DateTime c#

时间:2014-01-22 10:05:18

标签: c# asp.net datetime

如何解析此字符串:

 "\"2014-01-02T23:00:00.000Z\"" to DateTime 

这不起作用:

    DateTime? dateTimeFormat= string.IsNullOrEmpty(inputString) ?? (DateTime?)null : DateTime.Parse(inputString);

6 个答案:

答案 0 :(得分:2)

您需要为DateTime.ParseExact方法指定日期时间的确切格式:

string input = "\"2014-01-02T23:00:00.000Z\"";
var date = DateTime.ParseExact(input, "'\"'yyyy-MM-dd'T'HH:mm:ss.fff'Z\"'", null);

提供的格式说明:

'\"'           - match first "
yyyy-MM-dd     - match 2014-01-02
'T'            - match T
HH:mm:ss.fff   - match 23:00:00.000
'Z\"'          - match Z"

答案 1 :(得分:0)

DateTime.ParseExact(your_date.ToString(), "yyyy-MM-ddTHH:mm:ssZ", null)

答案 2 :(得分:0)

试试这个:

DateTime.ParseExact("2014-01-02T23:00:00.000Z" , "yyyy-MM-DDThh:mm:ssZ",CultureInfo.InvariantCulture);

也许这可行。

添加 -     使用System.Globalization;

答案 3 :(得分:0)

重新格式化字符串以使其格式正确,然后解析

string =  "\"2014-01-02T23:00:00.000Z\"";
string = substring(3,10) + " " + substring(14,8); //"2014-01-02 23:00:00"
time = DateTime.Parse(string);

答案 4 :(得分:0)

这将有助于

string test = "2014-01-02T23:00:00.000Z";
DateTime dt = Convert.ToDateTime(test);

答案 5 :(得分:0)

我已经尝试了这个答案中的几乎所有方法/代码,但没有一个对我有用。尽管使用此问题先前答案的部分代码,但我做到了,并且对我来说非常有效。

var d = "2019-01-11T05:00:00.000Z"; //Date

int year = Convert.ToInt32(d.Substring(0, 4));
int month = Convert.ToInt32(d.Substring(5, 2));
int day = Convert.ToInt32(d.Substring(8, 2));

var time = new DateTime(year, month, day);

我不关心时间。您可以根据需要添加它。