概述 我想将 ms-since-1970- 转换为带有时区(德国)的日期。这是代码的两种变体——至少我记得使用过它并且它可以工作:java.text.;java.util.; java.util.日期;java.util.;ja
我想用时区(德国)将 ms-since-1970- 转换为日期。
这是代码的两种变体-至少我记得使用它并且它有效:
<pre>import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
public class TestDate {
public static void main(String[] args) {
Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("Germany"),Locale.GERMANY);
Date d = new Date();
cal.setTime(d);
Sy[stem][3].out.println(String.format("d.d.d d:d:d",cal.get(Calendar.DAY_OF_MONTH),cal.get(Calendar.MONTH)+1,cal.get(Calendar.YEAR),cal.get(Calendar.HOUR_OF_DAY),cal.get(Calendar.MINUTE),cal.get(Calendar.SECOND)));
SimpleDateFormat df = new SimpleDateFormat( "dd.MM.yyyy HH:mm:ss.S" );
df.setTimeZone(TimeZone.getTimeZone("Germany"));
Sy[stem][3].out.println(df.format(d));
}
re>
这真的很奇怪java时区转换,因为我找不到 2 小时时差的原因。
应该是:16:05:20
代码打印:14:05:20 两种变体。
有人可以帮助我并告诉我这里有什么问题吗?
解决方案
这是问题所在:
<pre>TimeZone.getTimeZone("Germany")</pre>
没有这样的时区 ID编程之家为你收集整理的全部内容代码的两种变体–1970-转换为带时区(德国),所以 Java 的无限智慧决定只返回 UTCjava时区转换,而不告诉你出了什么问题。反而:
维基百科有一个,但有点过时(在撰写本文时);是最新的,但是浏览起来不是那么容易...
总结
以上就是编程之家为大家收集的奇怪的Java时区日期转换问题的完整内容。希望本文能帮助您解决程序开发中遇到的奇怪的Java时区日期转换问题。
如果您觉得编程之家网站的内容还不错,欢迎您将编程之家网站推荐给您的程序员朋友。