首页 > 解决方案 > DateTime.ToString("yyyy.MM.dd-HH_mm_ss") 仅在某些日本笔记本电脑上导致不正确的“年份”组件

问题描述

我们有一个 WPF 应用程序,供世界各地的用户使用。我们在代码中有以下日期对话。

DateTime dt = <some date time value>;

var formattedDateTime = (dt.ToString("yyyy.MM.dd-HH_mm_ss"));

这条线在一些具有日本文化集的日本笔记本电脑中给出了不正确的结果。

例如,如果 dt 值为 {2019/09/11 14:42:47}:

我认为这些笔记本电脑上的一些日本文化设置导致了这个问题。但我无法弄清楚那个设置是什么。另外,我认为将 CultureInfo.InvariantCulture 添加到 DateTime.ToString() 可以解决这个问题。

知道是什么设置导致了这个问题吗?

标签: c#datetimeculture

解决方案


您的一些用户将其 Windows 日期格式设置为使用日本日历,其中 2019 年是令和时代的第 1 年。他们可以通过进入 Windows 控制面板并将其日期格式更改为显示公历年份的选项之一(“ggy”而不是“y”)或将其日历类型从日语更改为解决您的问题到格里高利。


推荐阅读