使程序可以使用不同的 language/date 格式 vb

make program to work with different language/date format vb

我编写了一个工作程序来跟踪我们链接到访问数据库的项目。代码写在VB.NET

问题是我使用的计算机带有法语日期。整个事情都是根据那种语言编码的。但是现在我必须在公司的所有计算机上安装该程序(有些是法语的,有些是英语的)。由于他们正在使用另一个程序,我无法更改英语计算机的语言。

那么如何让我的程序使用英文日期呢?

我试过这样检测电脑的语言:

CultureInfo.CurrentCulture.DisplayName

然后将今天日期转换为法语(我使用今天日期将其与 "Alarms" 的截止日期进行比较,以防止我们在项目延迟或今天截止时出现):

Today = Today.toString(CultureInfo.CreateSpecificCulture("fr-CA")

但这似乎不是正确的方法,因为我的程序之后不会加载。

如果你有什么想法,我愿意阅读它们

谢谢大家

根据该描述,除了您正在创建的问题外,没有其他问题。不要将 dates/times 转换为 Strings,除非你确实需要 Strings。你没有。

DateTimePicker 的情况下,您只需将 Format 设置为 LongShort,然后用户将以适合他们的格式查看日期系统,基于他们当前的文化设置。在代码中,您从 Value 属性 中得到一个 DateTime 值,这是一个二进制值,因此格式无关紧要。

DataGridView 的情况下,如果您有一列包含 DateTime 值,那么它们将以基于当前文化的格式显示。基础值是二进制的,因此它们没有格式,但网格必须使用一种格式来显示。每个用户都会看到他们期望的内容,因为系统的文化设置将用于执行该格式。如果您不喜欢使用的格式,可以将列的 DefaultCellStyle.Format 属性 设置为 "D" 或 "d" 以匹配 LongShort 格式分别为 DateTimePicker

如我所说,此类列的单元格中的值是 DateTime 值,而不是 Strings,因此格式无关紧要。如果您想将它们与今天的日期进行比较,那么您可以使用二进制格式进行比较,例如

If CDate(myDataGridViewCell.Value) > Date.Today Then

您在任何时候都不必担心格式问题,因为应用程序会在格式有问题的任何地方自动使用当前系统文化设置。