如何将日期时间字符串解析为日期对象

时间:2013-09-13 16:17:31

标签: c# datetime

我有以下字符串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

2 个答案:

答案 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