2010-05-30 218 views
7

从我研究过它是不可能改变一个线程的时区。所以我的问题是为什么不可以吗?当我设置CurrentCulture时,为什么时区不会更改?

我会想,将您的应用程序的文化转换到特定的国家也会切换这个,看起来像预期的行为国际海事组织。

编辑

修改我能看到为什么它可能不应该被映射的原因1后:默认情况下,1。不过,我仍然认为这将是一个很好的功能,可以改变每个线程的时区。

+0

+1对于“我仍然觉得这将是一个很好的功能,能够改变每个线程的时区” – 2013-03-28 13:08:39

回答

10

他们不是1:1,所以他们没有真正连接。如果您将当前的文化设置为en-US,那是哪个时区? :)

几个国家有超过1个时区,所以设置文化(which is not country specific either for that matter),与真的没什么关系。

+0

+1好点!从来没有这样想过。对于那些*不具有多个时区的人来说,这不是一个好主意吗? – James 2010-05-30 12:32:41

+1

@James - Nope :)你应该总是在API中寻求*一致*的行为,而不是“在某些情况下这样做*如果你可以”,那就是要求麻烦和帮助台呼叫。可预测>尽可能多地做 – 2010-05-30 12:34:37

+0

如果CurrentCulture有一个超时时间带了Timezone ID,我会很好:) – James 2010-05-30 12:36:18

4

文化是一回事,时区是另一回事。假设你是在美国纽约工作的南非公民。显然,你希望你的时区是东部时间(格林威治标准时间-5),因为这是你的地方;根据你的建议,然而,如果你也将自己的文化设置为“af-ZA”,那么你可以自动将时区更改为GMT +2。

+0

是的修改后,我意识到他们可能不应该被默认映射。不过,如果你可以设置线程的时区,那也不错。 – James 2010-05-30 13:11:36

+0

@詹姆斯:那的确很好。但是,解决这个问题肯定有其他方法。例如,你的应用程序能否保持它自己的UTC偏移量 - 在运行时可以修改 - 并且在需要时间的地方使用这个偏移量? – 2010-05-30 13:37:26

+0

目前我有一个解决方案,并在飞行中进行转换。只是认为如果我可以改变每个线程的时区并完全消除转换,这会更容易。 – James 2010-05-30 14:08:24

相关问题