0

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

4

3 回答 3

1

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

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

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

回到主题,如果您的数据库将对象存储为 adate或者datetime根本不使用字符串。使用 EF 类的.GetDateString(int)方法IDataReader或类型字段属性。

于 2013-01-03T04:50:18.217 回答
0

不清楚您是想从数据库中读取相同的格式还是将其显示在屏幕(UI)上

如果它来自 sql server,请考虑使用convert <-follow this link

于 2013-01-03T04:41:05.860 回答
0

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

于 2013-01-03T04:50:03.930 回答