【问题标题】:CloudFoundry TimezoneCloudFoundry 时区
【发布时间】:2015-08-28 17:59:31
【问题描述】:

我开发了一个非常(JodaTime)以 DateTime 为中心的应用程序(日历等)。在我的计算机上本地一切正常。我已经在 cloudfoundry 部署了我的应用程序,日历中没有显示日期。 我想这与cloudfoundry的时区有关。我已将本地运行的应用程序连接到 coud 中的 mongodb 数据库,一切正常。 我现在的问题是如何将 cloudfoundry 的时区更改为 CEST (MEZ)?

非常感谢!

【问题讨论】:

    标签: timezone cloud-foundry


    【解决方案1】:

    您的 Java 应用程序将在 Linux 容器中运行,因此您可以使用任何 Linux 或 Java 方法来设置时区。

    最容易想到的...

    cf set-env <app-name> TZ 'America/Los_Angeles' cf restage <app-name>

    cf set-env <app-name> JAVA_OPTS '-Duser.timezone=Europe/Sofia' cf restage <app-name>

    第一个对于任何尊重 TZ 环境变量的应用程序都应该是通用的。第二个是特定于 Java 的。

    如果您不想使用cf set-env,您也可以通过manifest.yml 文件设置环境变量。

    【讨论】:

      【解决方案2】:

      扩展@DanielMikusa。 (很好的答案)

      清单样本:

          applications:
      - path: .
        buildpack: nodejs_buildpack
        memory: 128M
        instances: 1
        name: sampleCronJobService
        health-check-type: process
        disk_quota: 1024M
        env:
          TZ: Etc/Greenwich
          CF_STAGING_TIMEOUT: 15
          CF_STARTUP_TIMEOUT: 15
          TIMEOUT: 180
          SuperSecret: passwordToTheWorld
      

      为什么我知道它有效:

      var date = new Date();
      var utc_hour = date.getUTCHours();
      var local_hour = date.getHours();
      console.log('(Timezone) Local Hour: ' + local_hour + ' UTC Hour: ' + utc_hour);
      

      打印:(Timezone) Local Hour: 23 UTC Hour: 23

      如果我将清单设置为 TZ: America/Los_Angeles

      打印:(Timezone) Local Hour: 16 UTC Hour: 23

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多