Google应用引擎 - 本地开发服务器时区

时间:2012-11-07 10:24:38

标签: google-app-engine

我从GAE文档中了解到生产服务器时区始终是UTC。在本地开发时,服务器时区设置为CET。有没有办法强制本地开发服务器也能在UTC上运行?

开发服务器在Mac OS上运行。

谢谢,

格·

3 个答案:

答案 0 :(得分:4)

jut找到了答案。要设置服务器时区,只需进入Eclipse,“运行配置”,然后“VM参数”并添加以下“-Duser.timezone = UTC”。

在这种情况下,这会将服务器时区设置为您想要的值(UTC)。这非常方便,因为Google App Engine生产将始终运行UTC,而开发服务器(至少在我的情况下)使用本地时区运行。实际效果是我在开发和生产之间有不同的行为。

格·

答案 1 :(得分:2)

您可以在将日期值保存到数据存储区时将其用于转换为特定时区。

    DateFormat utcFormat = new SimpleDateFormat(patternString);
    utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    DateFormat indianFormat = new SimpleDateFormat(patternString);
    utcFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
    Date timestamp = utcFormat.parse(inputString);
    String output = indianFormat.format(timestamp);

答案 2 :(得分:1)

GAE devServer默认使用本地时区。

我使用此代码将其强制为UTC:

boolean isDevEnvironment = SystemProperty.environment.value() == SystemProperty.Environment.Value.Development;

    if (isDevEnvironment) {
        TimeZone.setDefault(DateTimeZone.UTC.toTimeZone());
        DateTimeZone.setDefault(DateTimeZone.UTC);
    }

您需要在服务器启动和初始化期间运行一次。