How to convert a string containing AM/PM to DateTime?

后端 未结 4 2021
离开以前
离开以前 2020-12-20 11:59

How can i parse a string like this: \"2/22/2015 9:54:02 AM\" to a DateTime instance?

i am currently using the DateTime.ParseExact method but without the AM/PM i.e:

相关标签:
4条回答
  • 2020-12-20 12:33

    You should change the hour format (H) to lowercase like this:

    DateTime.ParseExact("2/22/2015 9:54:02 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
    

    Uppercase "H" indicates a 24-hour time and lowercase "h" indicates 12-hour time and will respect the AM/PM in the candidate string.

    0 讨论(0)
  • 2020-12-20 12:36

    You can use the tt specifier:

    DateTime.ParseExact(
        "2/22/2015 9:54:02 PM",
        "M/dd/yyyy h:mm:ss tt", 
        CultureInfo.InvariantCulture
    )
    

    However be warned this can be locale specific. Also HH refers to the 24 hour clock, with AM/PM you generally use the 12 hour clock, so you'd want to use hh or just h for that.

    0 讨论(0)
  • 2020-12-20 12:43

    try this:

    if (date.Contains("AM") || date.Contains("PM"))
        return DateTime.ParseExact(date, "dd.MM.yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
    return DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture);
    
    0 讨论(0)
  • 2020-12-20 12:49

    Try This,

    DateTime.ParseExact("2/22/2015 9:54:02 PM", "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
    
    0 讨论(0)
提交回复
热议问题