我在博客上工作,想在东部时区显示我的帖子。我认为存储一切UTC将是正确的方式。这虽然产生了一些挑战:将日期时间存储在数据库中?
我必须将所有时间从UTC转换到东部。这不是一个大问题,但增加了很多代码。
与“大款”是我用一个短日期时间通过传递查询,ALA博客引用的帖子。问题是没有办法将短日期时间转换为正确的UTC日期,因为我缺少发布的时间信息。
嗯,任何问题只是存储在东部时间的所有日期?这肯定会使应用程序的其他部分更加容易,但如果我需要更改时区,则所有内容都将存储错误。
更新
@乔恩,非常看重自己的专业知识,但我已经决定存储UTC时间在数据库中是错误的。不过,你也许能够说服我!
所以,让我给你完整的骨感。我将所有时间转换为UTC,这需要在代码的声明部分中添加更多“语法”。
什么我编码是一个博客,所以我有两条路线,一个列表路线和细节的路线。细节路线采用短日期,并且假定组合的帖子的名称是唯一的。这就是它崩溃的原因。我通过查询中的短路线。
根据一天中的时间,我们能够围住,使其为29或30这样的短日期必须是正确的,因为我没有在查询足够的信息来确定如何将东部时间转换回世界标准时间。
我被存储DatePosted“短日期”的所有时间@上午12点为SQL宗旨和FirstModified长日期的时间。所以,我说,好的没问题,我只会将短日期存储在东部,然后将长日期转换为东部。不行,因为我无法使这些查询工作。
所以,我决定对这一切都做错了。日期应该始终保存在东部时间(我想使用的时间)。然后,如果用户想要更改时区(不是要求),我们只需浏览所有条目并更改它们。
也许,我在想这个毛病,但我的情况下,将永远只能是用于东部时区,所以这是浪费时间,无论哪种方式。
期待对此有任何意见!
的关键问题:
- 我传递在查询中的短日期。如果这个短日期是UTC,那么查询中的日期可能会被忽略1.如果我将短日期作为东部通过,那么我将需要一个linq-to-sql语法,它可以转换为SQL,以便我可以比较日期不同时区的时间。再次
感谢所有帮助!
@Jon我在考虑使用短日期时间的情况。 5/23/2010。这可能是23或24,并且不能转换 - 取决于时间。即,日期可能是错误的。我可以在源头处理这个问题。 – 2010-05-25 18:23:38
@Curtis White:要么有歧义 - 在这种情况下,您需要以任何方式处理它 - 或者没有,并且您可以补偿代码中的时区。 – 2010-05-25 18:35:00
@Jon感谢您的帮助。我更详细地更新了这个问题,随处转换所有日期/时间的问题最终我最终需要SQL支持这些问题,这在SQL 2005中如何实现其中一些并不明显。所以它变得一团糟。我决定最好将它存储在元数据中,然后在需要切换时转换所有时间,这也可以避免大多数转换。 – 2010-06-01 00:52:05