【问题标题】:how do i convert string to datetime in c# [duplicate]如何在 C# 中将字符串转换为日期时间 [重复]
【发布时间】: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 标签,因为这个问题几乎每天都会出现。

标签: c#


【解决方案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】:

        【讨论】:

          【解决方案6】:

          【讨论】:

            【解决方案7】:
            String str="04031985";
            
            DateTime dt = DateTime.Parse(str);
            DateTime dt = DateTime.ParseExact(str, @"MMddyyyy", null);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-04-10
              • 1970-01-01
              • 2016-07-30
              • 1970-01-01
              • 1970-01-01
              • 2013-03-12
              • 2011-07-10
              相关资源
              最近更新 更多