tomcat显示不正确的时间

时间:2018-04-17 14:54:08

标签: java tomcat war

我安装了一组war文件,这些文件是从tomcat执行的。

问题是tomcat没有找到合适的时间..

如日志文件中所示

    Apr 18, 2018 12:02:14 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/7.0.76
Apr 18, 2018 12:02:14 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Oct 30 2017 10:21:55 UTC
    Apr 18, 2018 12:02:14 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         7.0.76.0
    Apr 18, 2018 12:02:14 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Linux
    Apr 18, 2018 12:02:14 AM org.apache.catalina.startup.VersionLoggerListener log

上面显示的时间是2018年4月18日12:02:14但是系统中的当前时间如下所示。

Tue Apr 17 20:15:33 IST 2018

我已经检查了下面的hower Change Timezone in Tomcat的答案,似乎没有产生预期的结果

我的系统中没有catalina.sh和

的输出

/ etc / localtime - >的/ usr / share / zoneinfo中/亚洲/加尔各答

即所有都在IST

# timedatectl
      Local time: Tue 2018-04-17 20:21:29 IST
  Universal time: Tue 2018-04-17 14:51:29 UTC
        RTC time: Tue 2018-04-17 14:51:29
       Time zone: Asia/Kolkata (IST, +0530)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

我甚至重新启动了tomcat甚至是服务器但没有帮助

1 个答案:

答案 0 :(得分:1)

我假设你在linux上运行你的应用程序。 在远程服务器上的终端中键入日期,并检查本地系统上的日期时间,找出它们之间的时间差(即时区偏移量),并更新下面给出的与时区相关的示例代码

$ date

Psuedo java代码,用于处理假设UTC到IST转换的日期

public static String UTCtoIST(String dateUTC, DateFormat inputdf, DateFormat expecteddf) {
    try {
        inputdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        Date _dateUTC = inputdf.parse(dateUTC);
        expecteddf.setTimeZone(TimeZone.getTimeZone("IST"));
        return expecteddf.format(_dateUTC);
    } catch (Exception e) {
        //handle exception here
    }
    return null;
}

调用方法的示例

 DateFormat inputdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 DateFormat expecteddf = new SimpleDateFormat("yyyyMMdd");
 UTCtoIST(toDateInUTC, inputdf, expecteddf);