我正在更改一些在 unix 机器上运行的代码。它根据伦敦的当前日期和时间为数据库中的字段设置时间。
我使用的方法如下;
private static Date getCurrentTime() {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd-kk:mm:ss.SSS");
format.setTimeZone(TimeZone.getTimeZone("Europe/London"));
Calendar cal = Calendar.getInstance();
Date currentDate = cal.getTime();
try {
return format.parse(format.format(currentDate));
} catch (ParseException e) {
log.error("Error occured while parsing date-->" + e.getMessage());
}
return new Date();
}
private String getStringFromDate(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd-kk:mm:ss.SSS");
return sdf.format(date);
}
当消息由生产 unix 框上的 java 应用程序处理时(设置为北美时间,因为它是托管的),那么当它插入数据库时,它会落后一个小时(未设置为 BST)。
如果我在桌面上的 Eclipse 中运行相同的代码,我会在数据库中获得正确的时间。
我不确定是什么导致了这个问题,希望有人能提供帮助。
谢谢
编辑*** 乍一看,即使是 unix 盒子上的日志文件也落后了一个小时,所以在此基础上,我假设它的 unix 导致了与我的代码相反的问题。