【问题标题】:DateTime.TryParseExact returns false for some string in c#DateTime.TryParseExact 在 c# 中为某些字符串返回 false
【发布时间】:2017-10-25 23:41:05
【问题描述】:

我在解析日期时遇到问题。我做了以下常用功能。

public static string ConvertedDate(string date)
        {
            if(!string.IsNullOrEmpty(date))
            {
                DateTime returnValue;
                bool flag = DateTime.TryParseExact(date, "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out returnValue);
                return flag ? returnValue.ToString("MM.dd.yyyy") : null;
            }
            else
            {
                return null;
            }
        }

但是很奇怪的事情发生了一些字符串成功转换为DateTime但有些返回false。

例如:

“2017-05-11 12:00:24”这个字符串解析成功。

“2015-03-06 20:18:42”这个字符串不行。

字符串的格式相同。

我观察到,当“hour(hh)”超过 12 时,就无法解析。

【问题讨论】:

标签: c# asp.net xamarin xamarin.forms c#-6.0


【解决方案1】:

您需要将 yyyy-MM-dd hh:mm:ss 更改为 yyyy-MM-dd HH:mm:ss,即 24 小时制中的小时数。注意从 hh 到 HH 的变化。

请看这里:C# DateTime to "YYYYMMDDHHMMSS" format

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多