【发布时间】:2014-07-30 15:04:18
【问题描述】:
在我的程序中,我将当前时间插入到 sql 服务器中的 sql DateTime 列中。 因为该程序被世界各地的用户使用,我发现一些美国用户收到了一个错误(这不会导致程序崩溃),我相信这是因为不同的日期和时间格式而发生的。
我使用以下代码行来获取特定时区的当前时间,但我知道对于不同的用户,我将获得不同的时间格式。 例如,对于美国用户,我会得到“MM-dd-yyyy”,而对于欧洲用户,我会得到“dd/MM/yyyy”。
Dim CurrentTime As DateTime = System.TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("SOME LOCAL TIME ID"))
我一直试图弄清楚如何在插入服务器之前标准化这种格式,但没有任何运气。 希望这里有人可以提供帮助。
谢谢!
【问题讨论】:
-
它更可能与您如何向这些用户显示日期有关。 Date 只是一个 Long 值,它对 Yanks 和英国人和德国人的意义相同。它的显示方式因当地文化而异。如果你在程序中转换成字符串,那很可能是问题所在。
-
这不是sql server的设置吗?这取决于 sql server 的语言环境。我不完全确定。不确定 sql server 的区域设置和运行 .net 应用程序的机器之间的差异是否也会导致问题。但是,我给了你一些探索的途径。 :)
-
for different users i will get different time formats实际上,不同的用户会看到相同日期时间的不同格式 - 你除了存储日期之外不需要做任何事情。theDate.ToString将根据每个用户的本地设置显示日期。 VS 会以 your 本地格式显示日期。
标签: sql .net sql-server vb.net datetime