提问人:Snake_Plissken 提问时间:6/16/2023 更新时间:6/16/2023 访问量:65
VB - 在不同机器上使用字符串-日期连接的不同结果
VB - Different Results With String-Date Concatenation On Different Machines
问:
我和我的同事在调试一个问题时遇到了一些奇怪的问题:同一部分 VB 代码在我的机器上产生的输出与他的机器不同。我们无法弄清楚为什么。
代码:
Dim textForMatching = unmatchedRecord.MetaDataString + " - " + unmatchedEvent.StartDate?.ToLocalTime().Date
在我的机器上,输出是这样的,而在他的机器上,输出是 。我的日期输出中的那个领先者在他的日期输出中缺失了。10d775fff794 - 06/15/2023
10d775fff794 - 6/15/2023
0
我们位于同一时区,并且都使用相同版本的 Visual Studio。
有谁知道为什么会这样?这是由于使用运算符隐式转换为字符串而导致的一些本地化相互作用吗?或者我们的计算机上是否有可能略有不同并导致这种情况的设置?+
答:
2赞
Michael Foster
6/16/2023
#1
检查注册表:sShortDate 设置。每台机器都不同吗?HKEY_CURRENT_USER\Control Panel\International
我相信这就是它确定要使用的日期格式的方式。
1赞
Gustav
6/16/2023
#2
您应该研究文档。
然后你会发现:
请注意,确切的输出取决于当前区域性和 运行它的系统的本地时区。
因此,原因是您对日期和时间使用了不同的 Windows 设置。
评论
+
&
...Date.ToString(*format?*)
Dim textForMatching = $"{unmatchedRecord.MetaDataString} - {unmatchedEvent.StartDate?.ToLocalTime().Date}"
ToString()
String.Format
Console.WriteLine($"The date is {Date.Now:d/MM/yyyy}")
unmatchedEvent.StartDate?.ToLocalTime().ToString("MM/dd/yyyy")
&
+