我正在从服务器解析日期,日期采用这种格式6/16/2016 3:15:29 PM
您能否帮助我将日期转换为2016-06-16
?
我试过了:
DateTime date = DateTime.ParseExact(datestring, "MM/dd/yyyy h-m-s t", System.Globalization.CultureInfo.InvariantCulture);
string formattedDate = date.ToString("yyyy-MM-dd")
但它给了我错误。
答案 0 :(得分:5)
你有3个问题
t
M
尝试
DateTime date = DateTime.ParseExact(datestring, "M/d/yyyy h:m:s tt", System.Globalization.CultureInfo.InvariantCulture);
string formattedDate = date.ToString("yyyy-MM-dd");
您只需要一个M
的原因是因为MM
需要前导零。由于日期和时间的值是分隔的,因此将单个版本用于月,日,分和秒会更好,因为它们适用于带或不带前导零的值。
答案 1 :(得分:0)
要执行输入字符串的DateTime.ParseExact()
格式,格式字符串必须相同。试试这个:
DateTime date = DateTime.ParseExact(datestring, "M/dd/yyyy h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
string formattedDate = date.ToString("yyyy-MM-dd");
这些在给定的输入字符串中很有意思(6/16/2016 3:15:29 PM
):
M
代替MM
。如果指定为MM
,我们会使用06
。h
hh
PM
之间只有一个空格。
因此,我们必须在为ParseExact