.net 小时>11时的DateTime问题

kxkpmulp  于 2023-07-01  发布在  .NET
关注(0)|答案(2)|浏览(118)

我正在开发一个自定义日期格式转换器,一切似乎都很好,直到我得到一个小时> 11。目前我们使用的是24小时格式,但是当我使用长时间转换器恢复到12小时格式时,我得到了相同的行为。当时间到达中午时,它的格式落后12小时。

public static string DateFormatConverter(string date)
{
    DateTime result = DateTime.ParseExact(date, "yyyyMMddhhmmss", null);
  
    string month = result.ToLongDateString().Replace(DateTime.Now.DayOfWeek + ",", "");
    month = month.Replace(DateTime.Now.Year.ToString(), "");
    month = month.Replace(DateTime.Now.Day.ToString() + ",", "");
     date = result.Day.ToString() + " " + month + result.ToString("yy") + " " + result.ToString("HH:mm:ss");
    date = date.Replace("  ", " ");
    return date;
}

下面是输入:
1)20230629105843
20230629124942
下面是输出:
1)29 2019年06月23日10:58:43
2)29 2019 - 06 - 22 00:00:42

zhte4eai

zhte4eai1#

请参阅docshh适用于12小时格式,您需要HH适用于24小时格式

pqwbnv8z

pqwbnv8z2#

因此,对于那些可能在.net上遇到类似问题的人,我发布了一个简化版本的函数,并进行了更正,因为有一些不必要的代码行,我认为可能会混淆一些人。

public static string DateFormatConverter(string date)
    {
        DateTime result = DateTime.ParseExact(date, "yyyyMMddHHmmss", null);
        date = result.Day.ToString() + " " + result.ToString("MMMM")+" " + result.ToString("yy") + " " + result.ToString("HH:mm:ss");
        date = date.Replace("  ", " ");
        return date;
    }

相关问题