从时区日期时间转换为短日期 C#
Convert from timezone datetime to short date C#
我有这样的日期时间数据:2018-06-29T22:10:33Z
。
我需要短日期格式 - 06/29/2018
即没有时间部分。
我在 C# 中尝试了以下方法:
ConvertToDateTime(dateString);
DateTime.Parse(dateString);
两者都有错误。
我正在求助于 dateString.substring(0,10)
来获取前 10 个字符并将其转换为日期。
有没有更好的方法?
您可以使用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());
}
首先,日期格式似乎格式不正确。您应该收到的格式应该像 "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”。
我有这样的日期时间数据:2018-06-29T22:10:33Z
。
我需要短日期格式 - 06/29/2018
即没有时间部分。
我在 C# 中尝试了以下方法:
ConvertToDateTime(dateString);
DateTime.Parse(dateString);
两者都有错误。
我正在求助于 dateString.substring(0,10)
来获取前 10 个字符并将其转换为日期。
有没有更好的方法?
您可以使用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());
}
首先,日期格式似乎格式不正确。您应该收到的格式应该像 "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”。