Calendar.getInstance给出错误的日期 [英] Calendar.getInstance gives wrong date

查看:473
本文介绍了Calendar.getInstance给出错误的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一些小的方法作为Util类,例如以下代码:

I create few small methods as an Util class, like the following code:

public class Util
{
  public static final String DATETIME_PATTERN="YYYY/MM/DD - HH:mm:ss";

  public static String getDateTime()
  {
    SimpleDateFormat sdf=new SimpleDateFormat(DATETIME_PATTERN);
    return sdf.format(getToday());
  }

  public static Date getToday()
  {
    //Calendar today=Calendar.getInstance(); //didn't help
    Calendar today=Calendar.getInstance(Locale.TAIWAN); //didn't fix
    //Calendar today=Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); //didn't fix as well
    return today.getTime();
  }
}

然后,进行了非常简单的运行,如下所示:

And, did a very simple run, like this:

//run in main class
System.out.println("Generating sitemap.xml, please wait..."+Util.getDateTime());

结果是一个很奇怪的日期-> 2017/07 / 187

The result is a quite weird date -> 2017/07/187

//Console result:
Generating sitemap.xml, please wait...2017/07/187 - 15:27:21

搜索了类似的问题,并尝试了TimeZone,Locale,但没有帮助。
有什么建议吗?

Searched for similar question, and tried TimeZone, Locale, but didn't help. Any suggestions ?

BTW,这是我的环境:

BTW, here's my environment:


  • Windows7 x86

  • JDK 1.8.0.131 x86

  • 食氧x86

推荐答案

格式化日期的方式存在问题。
尝试将其更改为此

It's a problem with the way you are formatting the date. Try changing it to this

  public static final String DATETIME_PATTERN="yyyy/MM/dd - HH:mm:ss";

这篇关于Calendar.getInstance给出错误的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆