使程序使用不同的语言/日期格式vb

时间:2017-04-24 14:17:14

标签: vb.net date format cultureinfo

我编写了一个程序,用于保存与访问数据库相关联的项目跟踪。代码是用VB.NET编写的

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

那么如何让我的程序与英语日期一起工作?

我试图以这种方式检测计算机的语言:

CultureInfo.CurrentCulture.DisplayName

然后将今天的日期转换为法语(我使用今天的日期将其与#34的预定日期进行比较;警报"以防止我们在项目延迟或今天到期时):

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

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

如果你有任何想法,我愿意阅读它们

谢谢你们

1 个答案:

答案 0 :(得分:0)

根据该描述,除了您正在创建的问题之外,没有其他问题。除非您确实需要Strings,否则请勿将日期/时间转换为Strings。你没有。

如果是DateTimePicker,您只需将Format设置为LongShort,然后用户就会以适合其系统的格式查看日期,根据他们目前的文化背景。在代码中,您从DateTime属性获得Value值,这是二进制值,因此格式无关紧要。

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

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

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

您无需担心格式问题,因为应用程序将自动使用当前系统区域设置,无论格式是什么问题。