我正在尝试将字符串转换为DateTime。代码如下:
DateTime.Parse("20131101T210705.282Z").ToShortTimeString()
我收到格式异常。
我尝试提供以下格式" yyyyMMddTssmmhh.fffz"但收到同样的例外。代码如下所示
DateTime dt;
if (DateTime.TryParseExact("20131101T210705.282Z",
"yyyyMMddTssmmhh.fffz",
new CultureInfo("en-US"),
DateTimeStyles.None,
out dt))
return dt.ToShortTimeString();
在这种情况下,代码不会解析字符串。
答案 0 :(得分:1)
试试这个:
DateTime dt;
if (DateTime.TryParseExact("20131101T210705.282Z",
"yyyyMMddTssmmhh.fffZ",
new CultureInfo("en-US"),
DateTimeStyles.None,
out dt))
return dt.ToShortDateString() + " " + dt.ToShortTimeString();
答案 1 :(得分:0)
这可能是解析的一种方法。
var timeStamp = "20131101T210705.282Z";
var datetime = timeStamp.Split(new[] { 'T' ,'.'});
DateTime dt1;
if (DateTime.TryParseExact(datetime[0],
new string[] { "yyyyMMdd" },
new CultureInfo("en-US"),
DateTimeStyles.None,
out dt1))
{
Console.WriteLine(dt1.ToShortDateString());
}
DateTime dt2;
if (DateTime.TryParseExact(datetime[1],
new string[] { "ssmmhh" },
new CultureInfo("en-US"),
DateTimeStyles.None,
out dt2))
{
Console.WriteLine(dt2.ToShortTimeString());
}
Console.WriteLine(dt1.ToShortDateString() + " " + dt2.ToShortTimeString());
Console.ReadLine();
答案 2 :(得分:0)
格式完全不正确。由于所有值(小时,分钟和秒)都小于24,因此给出的时间戳值不能清楚地指示小时数。以下代码可以正常工作。
DateTime.TryParseExact(value,
"yyyyMMddTHHmmss.fffZ",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt)
鉴于这种专有格式,小时数为24小时格式,排在第一位。从今天早晨开始的测试产生以下值:20131106T162733.032Z。我能够测试这种专有格式,因为我们在同一家公司工作。 :)