我编写了一个程序,用于保存与访问数据库相关联的项目跟踪。代码是用VB.NET编写的
问题是我使用的是带法语日期的电脑。整个事情根据那种语言编码。但现在我必须在公司的所有计算机上安装该程序(一些是法语和som的英语)。由于他们正在使用的另一个程序,我无法改变英语计算机的语言。
那么如何让我的程序与英语日期一起工作?
我试图以这种方式检测计算机的语言:
CultureInfo.CurrentCulture.DisplayName
然后将今天的日期转换为法语(我使用今天的日期将其与#34的预定日期进行比较;警报"以防止我们在项目延迟或今天到期时):
Today = Today.toString(CultureInfo.CreateSpecificCulture("fr-CA")
但这似乎不是正确的方法,因为我的程序后来没有加载。
如果你有任何想法,我愿意阅读它们
谢谢你们
答案 0 :(得分:0)
根据该描述,除了您正在创建的问题之外,没有其他问题。除非您确实需要Strings
,否则请勿将日期/时间转换为Strings
。你没有。
如果是DateTimePicker
,您只需将Format
设置为Long
或Short
,然后用户就会以适合其系统的格式查看日期,根据他们目前的文化背景。在代码中,您从DateTime
属性获得Value
值,这是二进制值,因此格式无关紧要。
对于DataGridView
,如果您的列包含DateTime
值,则它们将以基于当前文化的格式显示。基础值是二进制的,因此它们没有格式,但网格必须使用格式进行显示。每个用户都会看到他们期望的内容,因为系统的文化设置将用于执行该格式。如果您不喜欢使用的格式,可以将列的DefaultCellStyle.Format
属性设置为“D”或“d”,以匹配Long
和Short
格式DateTimePicker
1}}分别。
正如我所说,这样一列的单元格中的值是DateTime
值,而不是Strings
,因此格式无关紧要。如果你想将它们与今天的日期进行比较,那么你可以用二进制格式进行比较,例如
If CDate(myDataGridViewCell.Value) > Date.Today Then
您无需担心格式问题,因为应用程序将自动使用当前系统区域设置,无论格式是什么问题。