【问题标题】:Datetime is giving error while conversion转换时日期时间出错
【发布时间】:2026-01-11 02:45:01
【问题描述】:

我有这种格式的字符串:19/8/1988

注意:String DateOfBirth=" 19/8/1988"

当我使用Datetime.parse(DateOfBirth) 时,它给了我invalid dateformat error

cdate(DateOfBirth)我也做不到

当我以 mm/dd/yyyy 格式输入字符串时,即8/19/1988,它不会给我错误。

请帮我将字符串转换为mm/ddd/yyyy格式的日期。

【问题讨论】:

  • 尝试TryParseExact 而不是Parse msdn.microsoft.com/en-us/library/h9b85w22.aspx
  • DateTime.ParseExact 只需搜索*。你会找到数百万个答案。
  • 这也给了我同样的错误,这就是我发布问题的原因
  • 请注意,mm 表示分钟而不是月份,因此在使用 TryParseExact 时请写入 MM
  • @NavatKayAahe 你还没有发布吗?

标签: c# asp.net .net vb.net visual-studio-2008


【解决方案1】:

小写mm表示分钟而不是月份,您需要使用大写M(单个字符)。

但您还需要将ParseExactCultureInfo.InvariantCulture 一起使用。否则,您当前的文化将用于获取不一定是 /(在许多国家/地区是 .)的日期分隔符。

所以这适用于任何文化:

DateTime.ParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture)

Demo

The "/" Custom Format Specifier

如果你想验证给定的日期字符串,你可以使用DateTime.TryParseExact:

DateTime dt; 
if(DateTime.TryParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) 
{
    // success, dt contains the correct date now
} 
else 
{
    // not a valid date 
}

【讨论】:

    【解决方案2】:

    请注意,您在日期时间之前有空格,您需要在使用给定格式解析为 DateTime 之前删除该字符串

    var date = DateTime.ParseExact(DateOfBirth.Trim(), "d/M/yyyy", CultureInfo.InvariantCulture);
    

    如果你有多种日期时间格式,那么

    var date = DateTime.ParseExact(DateOfBirth.Trim(), new string[] {"d/M/yyyy","M/d/yyyy"} , CultureInfo.InvariantCulture, DateTimeStyles.None);
    

    【讨论】:

      【解决方案3】:

      Net developer,这是vb中的代码,需要转换成C#

      Dim time As DateTime = DateTime.Now
      Dim format As String = "dd/MM/yyyy" 
      ' you can set format to both "dd/MM/yyyy" or "d/MM/yyyy"
      
      MsgBox(time.ToString(format))
      

      如果有帮助,请告诉我。

      【讨论】:

        【解决方案4】:

        我知道是什么原因导致您出错,系统日期时间默认采用美国日期时间格式 (mm/dd/yyyy) 在您的系统中更改此格式,转到 control panel --> regional and languages --> formats --> additional settings--> 日期更改您想要的格式这是手动解决您的问题或否则以这种方式以编程方式解决

        DateTime.ParseExact("19/8/1988", "dd/M/yyyy", CultureInfo.InvariantCulture)
        

        【讨论】:

          最近更新 更多