我有如下所示的日期时间数据:2018-06-29T22:10:33Z
。
我需要短日期格式-06/29/2018
,即没有时间部分。
我已经在C#中尝试了以下方法:
ConvertToDateTime(dateString);
DateTime.Parse(dateString);
两者均出错。
我正在使用dateString.substring(0,10)
来获取前10个字符并将其转换为日期。
有更好的方法吗?
答案 0 :(得分:2)
您可以使用DateTime.TryParse方法。即:
string s = "2018-06-29T22:10:33Z";
DateTime t;
if (DateTime.TryParse(s, out t))
{
Console.WriteLine(t.ToShortDateString());
}
要获取UTC日期:
string s = "2018-06-29T22:10:33Z";
DateTime t;
if (DateTime.TryParse(s, out t))
{
Console.WriteLine(t.ToUniversalTime().ToShortDateString());
}
答案 1 :(得分:1)
首先,日期格式似乎格式不正确。您应该接收的格式应为“ yyyy-MM-ddTHH:mm:ss.fffffffK”(即“ 2018-06-29T22:10:05.1440844Z”)。
假设提供的采样日期有错别字,下面是几个将日期时间字符串(采用UTC格式)转换为DateTime的示例:
var dateString = "2018-06-29T22:10:05.1440844Z";
var datetime = DateTime.ParseExact(dateString, "yyyy-MM-ddTHH:mm:ss.fffffffK", CultureInfo.InvariantCulture);
var date = datetime.Date;
或
var datetime = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture);
var date = datetime.Date;
您必须考虑获得UTC日期,必须考虑时区转换。另外,当仅使用日期部分时,时间部分设置为“ 12:00:00 AM”。