如何解析此字符串:
"\"2014-01-02T23:00:00.000Z\"" to DateTime
这不起作用:
DateTime? dateTimeFormat= string.IsNullOrEmpty(inputString) ?? (DateTime?)null : DateTime.Parse(inputString);
答案 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);
我不关心时间。您可以根据需要添加它。