我正在使用VB.NET在Web应用程序中工作.还混合了VisualBasic代码,特别是Date变量和VB的Month函数.
问题是这部分:
Month("10/01/2008")
在服务器上,我得到10(十月)作为月份(这应该是正确的).在我的机器上,我得到1(1月)(这应该是错误的).
我的两个同事(在他们自己的机器上)得到不同的答案,一个得到1,另一个得到10.
问题是,为什么会这样呢?
在我的结尾,我可以通过使用.NET的DateTime的Parse(或ParseExact)函数来强制所有内容为"dd/MM/yyyy"格式来解决问题.这有效.我只是想知道为什么会有不一致.
额外信息:我知道Month函数的参数应该是Date变量.代码使用字符串作为参数,Option Strict关闭,开发人员主要让VB做自己的转换事情.(遗留代码维护有很多惯性...)
如果有帮助,服务器上的Microsoft.VisualBasic.dll版本为7.10.6310.4(在Framework文件夹v1.1.4322下).我的(以及我的2位同事)机器上的版本是7.10.6001.4.
编辑:已设置为dd/MM/yyyy格式(短日期格式)的所有计算机的区域设置.
这通常与区域设置有关,更具体地说与日期/时间格式有关.如果您设置这些格式,使它们在您正在测试的计算机上完全相同,则结果应该是一致的.
你使用ParseExact的想法绝对是更好的解决方案,恕我直言.