2011-08-01 25 views
1

我想更改默认时区,因此它是我们当地的欧洲/布拉格 - 因为我的工作周/天边界。Appengine权限更改乔达时间默认时区

但调用(I称之为在滤波器bfore处理每个请求)

DateTimeZone.setDefault(DateTimeZone.forID(DateUtils.TIME_ZONE)); 

结果转换成权限错误时抛出。我不认为我不能在appengien上获得新的权限,我该怎么办?

TimeZone.setDefault(TimeZone.getTimeZone(DateUtils.TIME_ZONE));虽然

回答

2

个人而言,我会简单地避免在任何地方使用默认时区。总是将时区明确传递给将使用它的任何东西。这使得代码更清晰,面对系统默认更改时更强大,面对需要在同一应用程序中使用两个时区时更强大,并且意味着您无需编制如何更改AppEngine上的系统默认值。

(顺便说一句,我约达时间到.NET的地方,虽然我们支持获取系统时区,我们不使用它作为默认在代码的任何地方 - 你要明确你想要什么,系统默认是在这么多的情况下,错误的选择,这是一个坏主意,在默认情况下IMO使用它。)

+0

在许多情况下,我同意,但在我目前的状况,我需要整个应用程序在特定时区工作。这是一个规范。我到处把这个consatnt的代码,但请求过滤似乎更配置和维护 – Hurda

+0

@Hurda:你总是可以包你使用最常用到的辅助方法的区域敏感的操作。我认为明确表示一切可能会比尝试更改AppEngine默认时区更好。 –