用户计算机相关的日期格式错误

时间:2013-01-03 03:39:37

标签: vb.net

这是我的问题。我从我的数据库中获得的日期包含“12/31/2013”​​。根据此日期,格式为mm / dd / yy。现在的问题是我如何做到这一点,无论用户计算机中的日期格式如何,他们总是将日期“12/31/2013”​​读作mm / dd / yy而不是示例dd / mm / yy当它读取它包含一个错误,因为没有31个月。我从我的数据库收到的日期尝试拆分方法,但我不能让它确认独立于用户计算机的格式

3 个答案:

答案 0 :(得分:1)

您的日期是以实际date格式还是以字符串形式存储在数据库中?

请记住,默认情况下DateTime.Parse使用当前用户的当前系统日期/时间格式设置(因此英国用户为dd / MM / yyyy,但美国用户为MM / dd / yyyy)。如果要进行统一解析,请使用DateTime.ParseExact并指定精确的解析格式字符串。

一个有用的经验法则是“如果你曾经使用过String.Split,你可能做错了什么”(我会对快速和肮脏的副设计程序做例外,但是对于解析格式字符串,正则表达式或有限状态机更高性能(更少的字符串分配)和更少的脆弱。

回到主题,如果您的数据库将对象存储为datedatetime,则根本不使用字符串。使用.GetDateString(int)的{​​{1}}方法或EF类的字段属性。

答案 1 :(得分:0)

目前尚不清楚是否要从数据库中读取相同的格式或在屏幕上显示它(UI)

如果是来自sql server,请考虑使用convert< - 请点击此链接

答案 2 :(得分:0)

您是如何从数据库中获取日期的?您是否将日期存储为字符串?如果可能,请考虑将日期保留为DateTime变量而不是字符串。如果不可能,请查看支持国际化的DateTime.TryParse方法,并且应该能够理解用户的UI本地化设置。

相关问题