如何在 C# 中将字符串转换为日期时间 [重复]

Posted

技术标签:

【中文标题】如何在 C# 中将字符串转换为日期时间 [重复]【英文标题】:how do i convert string to datetime in c# [duplicate] 【发布时间】:2011-07-15 21:59:14 【问题描述】:

可能的重复:Convert string to datetime Using C#Converting String to DateTime C#.net

嗨, 我有一个由日期时间组成的字符串,格式为 dd/mm/yyyy hh:mm:ss.ms

即日期/月/年时:分:秒.毫秒。例如。 18/03/2011 15:16:57.487

如何使用 c# 将此字符串转换为日期时间

问候 cmrhema。

【问题讨论】:

确实注意到在编写问题时出现的相关问题列表?那里有很多与您的问题完全相同的重复项。 在发帖之前为什么不搜索一下发帖时列出的上一个帖子 再次搜索,我发现这个更好(因为它还指出了DateTime.TryParse):Convert string to DateTime in C# 我发誓需要一个 DateTime.ParseExact 标签,因为这个问题几乎每天都会出现。 【参考方案1】:

您可以使用 DateTime.Parse 或 DateTime.ParseExact

  DateTime dateValue;
  string dateString = "2/16/2008 12:15:12 PM";
  try 
     dateValue = DateTime.Parse(dateString);
     Console.WriteLine("'0' converted to 1.", dateString, dateValue);
     
  catch (FormatException) 
     Console.WriteLine("Unable to convert '0'.", dateString);
  

对于 ParseExact

dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
format = "ddd dd MMM yyyy h:mm tt zzz";
try 

     result = DateTime.ParseExact(dateString, format, provider);
     Console.WriteLine("0 converts to 1.", dateString, result.ToString());

catch (FormatException) 

     Console.WriteLine("0 is not in the correct format.", dateString);

【讨论】:

【参考方案2】:

你正在寻找DateTime.ParseExact:

DateTime time = DateTime.ParseExact(
    "18/03/2011 15:16:57.487", 
    "dd/MM/yyyy HH:mm:ss.fff", 
    CultureInfo.InvariantCulture
);

请注意,MM 表示月份,mm 表示分钟,HH 是 24 小时制,hh 是 12 小时制,f 是毫秒。

【讨论】:

【参考方案3】:

这是一种以 DateTime 所在格式解析并保持毫秒数的方法

        string dtString = "18/03/2011 15:16:57.487";

        System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR");           

        DateTime dt = DateTime.Parse(dtString.Split('.')[0], culture);

        Double milliseconds = Double.Parse(dtString.Split('.')[1]);

        dt = dt.AddMilliseconds(milliseconds);

【讨论】:

韦斯格兰特,我正在寻找上述答案。谢谢【参考方案4】:

DateTime.ParseExact 是你想要的,如果你知道日期字符串的确切格式。

【讨论】:

【参考方案5】:

看DateTime.Parse()

【讨论】:

【参考方案6】:

Convert.ToDateTime() http://msdn.microsoft.com/en-us/library/9xk1h71t.aspx

【讨论】:

【参考方案7】:
String str="04031985";

DateTime dt = DateTime.Parse(str);
DateTime dt = DateTime.ParseExact(str, @"MMddyyyy", null);

【讨论】:

以上是关于如何在 C# 中将字符串转换为日期时间 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中将 APRIL,03/2013 字符串转换为 DateTime [重复]

如何在python中将字符串转换为日期时间[重复]

如何在 C# 中将日期字符串转换为 DateTime 对象? [复制]

如何在Android中将时间戳字符串转换为日期[重复]

如何在 .Net / C# 中将日期转换为 HTTP 格式的日期

如何在C#中将字节转换为字符串[重复]