首页 > 解决方案 > 有没有办法只更新日期选择器内容控件的文本,而不是格式细节?

问题描述

我正在开发一个单词加载项应用程序,其中我有几个日期选择器内容控件,将文本值设置到该内容控件中也会根据系统日期格式更改它的格式。

我正在明确设置DateDisplayFormatDateDisplayLocale它仍然按照系统日期格式显示日期值。

ContentControl.Range.Text = "21-12-16";
ContentControl.DateDisplayFormat ="yy-M-d";
ContentControl.DateDisplayLocale = 
Microsoft.Office.Interop.Word.WdLanguageID.wdSimplifiedChinese;

我的系统日期格式:MM/dd/yyyy

-Actual result : 16-12-21 (MM/dd/yyyy)
-Expected result : 21-12-16 (yy-M-d)

标签: c#ms-wordvstoword-contentcontrol

解决方案


我相信问题来自于Range.Text = 16-12-21.

这可以解释为 2016 年或 2021 年。Word确实依赖于 Windows 系统设置来解释日期应该是什么,而不是任何本地的。我想,也许切换格式和数据输入的顺序可能会产生影响,但不会。

只需提供四位数的年份,这是自人们在 1990 年代意识到潜在的“千年”问题以来的标准良好做法,并且没有问题。当有人在 UI 中使用 DatePicker 时也没有问题。所以...

ContentControl.Range.Text = "2021-12-16";
ContentControl.DateDisplayFormat ="yy-M-d";
ContentControl.DateDisplayLocale = 
Microsoft.Office.Interop.Word.WdLanguageID.wdSimplifiedChinese;

推荐阅读