java - 关键云类型转换厂的时区变化

标签 java timezone log4j cloud-foundry

我在 PCF(Pivotal cloud Foundry)中的 Spring Boot 应用程序在 UTC+5:30 中显示“new Date()”的日志和输出,我想将此时区更改为 UTC-5:00(即 CDT)。我看到这篇文章: CloudFOundry timezone change

但是在进行类似的更改后,它似乎对我的日志记录时间戳没有任何影响。但是,我确实得到了记录的“new Date()”输出不同的结果,并且它是

2018-09-04T18:40:06.025+05:30 [APP/PROC/WEB/0] [OUT] ########## HIT. Tue Sep 04 13:10:06 GMT 2018

但这也是错误的,新的 Date() 应该打印“Tue Sep 04 08:10:06 GMT 2018

我的manifest.yml有以下内容

---
  path: target/VFS-ConfigClient-0.0.1-SNAPSHOT.jar
  memory: 1G
  disk_quota: 1G
  instances: 1
  buildpack: https://github.com/cloudfoundry/java-buildpack.git
  applications:
  - name: VFS-ConfigClient
    env: 
      SPRING_PROFILES_ACTIVE: nonProd_test
      TZ: CDT

我的 log4j.properties 有以下内容

# Logging Mechanism
log4j.rootLogger = DEBUG, A1
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.logger.com.centurylink = INFO, DEBUG, ERROR
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stderr.layout = org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

如果有人能指出我正确的方向,我将不胜感激。

最佳答案

最后发现这是在 Cloud Foundry 中记录正确时间戳的明显更改。以下是解决该问题的更改(最后一行中的 JAVA_OPTS env 变量)。感谢大家对我的帮助。

---
  path: target/VFS-ConfigClient-0.0.1-SNAPSHOT.jar
  memory: 1G
  disk_quota: 1G
  instances: 1
  buildpack: https://github.com/cloudfoundry/java-buildpack.git
  applications:
  - name: VFS-ConfigClient
    env: 
      SPRING_PROFILES_ACTIVE: nonProd
      JAVA_OPTS: -Duser.timezone=America/Chicago

关于java - 关键云类型转换厂的时区变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52167293/

相关文章:

java - imageView 不显示在预览场景中,但仍显示在模拟器上

java - 是否可以为所有请求共享相同的对象?

java - 如何使用 Intent 打开用户的个人资料联系人?

java - 动态添加JPanel Swing

r - 使用 dplyr 语法和 attr 函数转换时区

ruby-on-rails - Rails 3 用户时区

c# - 将 GMT Diff 转换为 .Net 时区?

java - 了解 Java 系统中的日志记录

log4j - 为什么我们在 log4j.xml 中需要 root 和 logger

java - log4j append=false 对我不起作用……为什么?