c# - Tryparse 对我不起作用,ParseExact 可以,但是当包含额外空间时它会失败

标签 c# datetime parsing tryparse

Tryparse 对我不起作用,ParseExact 可以,但是当包含额外空间时它会失败:

//Tryparse
string dateTimeString = "Sep 10 08:19";
DateTime dateAndTime;

if (DateTime.TryParse(dateTimeString, out dateAndTime))
{
    string temp = dateAndTime.ToString();   //"9/21/2018 10:08:00 AM" ??????? why?
}

//ParseExact works fine but it won't work with extra spaces in the date
string format = "MMM d HH:mm";
//dateTimeString = "Sep 10 08:19"; //works fine with this string
dateTimeString   = "Sep  9 08:19"; //notice extra extra space between "Sep" and "9"
dateAndTime = DateTime.ParseExact(dateTimeString, format, System.Globalization.CultureInfo.InvariantCulture); //Exception here
string temp2 = dateAndTime.ToString();

有什么想法吗?谢谢

最佳答案

所以首先你应该使用 TryParseExact() 而不是 ParseExact() 因为这是与 TryParse() 比较的正确方法.

接下来你只需要向你的方法传递一个额外的参数,DateTimeStylesDateTimeStyles.AllowWhiteSpaces:

if(DateTime.TryParseExact(
   "Sep 10 08:19", 
   "MMM d HH:mm", 
   CultureInfo.InvariantCulture, 
   DateTimeStyles.AllowWhiteSpaces, 
   out dateAndTime))
{
    //Parsed correctly, do something
}

fiddle here

关于c# - Tryparse 对我不起作用,ParseExact 可以,但是当包含额外空间时它会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52449768/

相关文章:

c - 为 C 代码生成调用图

c# - 如何在页面刷新时传递字符串?`

c# - 显式基类型转换时可能冗余操作码

c# - 处理这些 PDFSharp 表格限制的最佳方法是什么?

javascript - 页面上的一个按钮不会调用后面的代码,其他按钮可以

Python pandas .loc多个条件并修改部分日期

python - 用于打印日期的 django 时区

mysql - 根据日期范围更改 MySQL 表中的值

c - 类似预处理器的替换到解析器中

java - Jsoup:无法选择某些元素,尽管我可以在页面的 html 源代码中看到它们