我在使用 Java 日历时遇到了一个奇怪的情况。我正在使用推土机映射器来映射对象。
我想编写一个方法,将此对象转换为以下格式。yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
说元素 2010-11-11T09:30:47.000Z
public Calender getValue(Date source,Calender c) {
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
calendar.setTime(source);
return calendar;
}
当我运行程序时,它正在打印 2010-11-11T04:00:47.000Z - 因为我们将时区设置为 GMT,(9.30 - 5.30 = 4.00)
我希望我的对象具有相同的格式和值。如果我没有将 TimeZone 设置为 GMT,它将显示为 2008-11-21T09:30:47.000+05:30。
我希望它为 2010-11-11T09:30:47.000Z。
我尝试在日历中添加 5.30。
calendar.add(Calendar.HOUR, 5);
calendar.add(Calendar.MINUTE, 30)
那么它就可以了。但是如果这是从任何其他地方运行的,则差异不会是 5.30。所以我不能将 5.30 添加到 calenderget
有没有办法摆脱这个问题?我想返回 Calender 对象。
任何建议或帮助将不胜感激