【问题标题】:Java Current Time is 2 hours ahead of my system's TimeJava 当前时间比我的系统时间早 2 小时
【发布时间】:2012-07-15 16:53:15
【问题描述】:

我正在使用以下 Java 代码来获取当前日期和时间:

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));
System.out.println(timeFormat.format(date));

输出时间总是比我的系统时间或我的时区早 2 小时。例如,如果上面的代码输出以下时间:
11:44:43
那么我系统的时间是:
09:44:43

请帮我解决这个问题!

【问题讨论】:

  • 我会推荐你​​使用Joda Time,这个库已经解决了Java API的大部分日期、时间和日期时间问题。
  • 将时区添加到您的表单
  • @LuiggiMendoza 你能告诉我如何使用 Joda Time Library 分别打印当前日期和时间吗?谢谢
  • 使用 Joda 时间:DateTime d = new DateTime(); LocalDate ld = new LocalDate(d); LocalTime lt = new LocalTime(d); System.out.println(ld); System.out.println(lt);

标签: java datetime netbeans-6.9 systemtime


【解决方案1】:

试试这个:

DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
TimeZone tz = TimeZone.getDefault();
Calendar c = Calendar.getInstance(tz);
Date date = c.getTime();
System.out.println(timeFormat.format(date));

如果它不起作用,请尝试更改时区。看看TimeZone.getTimeZone(String id)

【讨论】:

  • 它给出了相同的输出。即使我使用Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC+05:00")); 设置了自己的时区,但没有成功!!有什么想法吗?
【解决方案2】:

你的问题是时区

为了经验

此代码适用于 android。

更改应用程序的时区。

因为android默认时区是“UTC”

SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2016-11-06
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多