我有以下字符串String strtime="2013-04-05T12:30:00.000+00:00";
如何将该字符串解析为日期时间对象?我想保留格式!
我知道以下事情
WriteLine(DateTime.Now.ToString("o"));
2013-06-03T19:11:51.7233344+02:00
WriteLine(DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fzzz"));
2013-06-03T19:26:52.7+02:00
但我不知道在哪里为我现有的时间字符串提供格式“o”。
编辑:
如果我使用简单的
datetime = DateTime.Parse(strtime);
writeLine(datetime.ToString());
我得到:
2013-07-01 12:30:00
缺少一些信息。我需要日期时间对象“2013-04-05T12:30:00.000+00:00
”
edit2:提供更大的图片。
我必须将字符串2013-04-05T12:30:00.000+00:00
保存到日期时间对象,稍后我需要再次将datetime对象保存/转换为字符串。最后,两个字符串必须采用相同的格式2013-04-05T12:30:00.000+00:00
我想我找到了解决方案,并将在此发布。
一个简单的datetime.ToString()
会切断信息。
WriteLine(datetime.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz"));
//2013-02-01T12:30:00.001+01:00
答案 0 :(得分:2)
datetime = DateTime.Parse("2013-02-01T12:30:00.001+01:00");
//datetime object shows 2013-02-01 12:30:00 but the ms are still stored.
//just use "o"
WriteLine(datetime.ToString());
//2013-02-01 12:30:00
WriteLine(datetime.ToString("o"));
//2013-02-01T12:30:00.0010000+01:00
WriteLine(datetime.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz"));
//2013-02-01T12:30:00.001+01:00
String str = datetime.ToString("o");
WriteLine("my: "+str);
//my: 2013-02-01T12:30:00.0010000+01:00
答案 1 :(得分:-1)
public class Example
{
public static void Main()
{
string[] dateStrings = {"2008-05-01T07:34:42-5:00",
"2008-05-01 7:34:42Z",
"Thu, 01 May 2008 07:34:42 GMT"};
foreach (string dateString in dateStrings)
{
DateTime convertedDate = DateTime.Parse(dateString);
Console.WriteLine("Converted {0} to {1} time {2}",
dateString,
convertedDate.Kind.ToString(),
convertedDate);
}
}
}
// These calls to the DateTime.Parse method display the following output:
// Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
// Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
// Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM