Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将日期时间字符串解析为日期对象_C#_Datetime - Fatal编程技术网

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

C# 如何将日期时间字符串解析为日期对象,c#,datetime,C#,Datetime,我有以下字符串string strtime=“2013-04-05T12:30:00.000+00:00” 如何将该字符串解析为datetime对象?我想保留格式 我知道以下事情 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

我有以下字符串
string strtime=“2013-04-05T12:30:00.000+00:00”

如何将该字符串解析为datetime对象?我想保留格式

我知道以下事情

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
但是我不确定在哪里为我已经存在的timedate字符串提供格式“o”

编辑:

如果我使用简单的

 datetime = DateTime.Parse(strtime);
 writeLine(datetime.ToString());
我得到:

2013-07-01 12:30:00
有些信息丢失了。我需要datetime对象中的所有信息“
2013-04-05T12:30:00.000+00:00

编辑2:提供更大的图景。 我必须将字符串
2013-04-05T12:30:00.000+00:00
保存到datetime对象,然后我需要再次将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

dateTimeObject=DateTime.Parse(“2013-04-05T12:30:00.000+00:00”)
有什么问题?以及“我想保留格式”是什么意思
DateTime
是一个数字,没有与之相关的格式信息(更糟糕的是没有时区)。我收到以下信息:2013-07-01 12:30:00。没有时区,没有毫秒。
DateTime
对象没有格式概念。它存储所需的数据(如日、月、年等),您的格式化程序(如
“o”
)指示信息的显示方式。感谢您的评论。“o”仅用于以特定格式显示时间的信息非常重要。如果您从其他站点复制了代码,则最好包含源代码
    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       
   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