c# - 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}:
少数日本笔记本电脑中的“formattedDateTime”输出:01.09.11-14_42_47
所有其他文化中的“formattedDateTime”输出:2019.09.11-14_42_47
我认为这些笔记本电脑上的一些日本文化设置导致了这个问题。但我无法弄清楚那个设置是什么。另外,我认为将 CultureInfo.InvariantCulture 添加到 DateTime.ToString() 可以解决这个问题。
知道是什么设置导致了这个问题吗?
解决方案
您的一些用户将其 Windows 日期格式设置为使用日本日历,其中 2019 年是令和时代的第 1 年。他们可以通过进入 Windows 控制面板并将其日期格式更改为显示公历年份的选项之一(“ggy”而不是“y”)或将其日历类型从日语更改为解决您的问题到格里高利。
推荐阅读
- azure-active-directory - PublicClientApplication 构建器在部署到 IIS 后不工作
- android - 将 Android 文件系统上的文件作为已签名的系统应用程序移动
- java - 应用程序默认凭据不可用。如果在 Google Compute Engine 中运行,它们就可用
- postgresql - 如何指定 postgresql 转换为 UUID 的错误行为
- android - ViewCompat.setOnApplyWindowInsetsListener() 改变系统导航栏的背景
- javascript - 使用类名使用 svg 文件
- arm - Pyinstaller 在构建引导加载程序时找不到目标架构
- database - 修改TDengine表结构
- python - 来自不同用户的 macOS 权限问题
- bash - ^ 在 BASH 命令中的作用是什么?