我安装了一组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甚至是服务器但没有帮助
答案 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);