1

我有以下代码:

    SimpleDateFormat format=new SimpleDateFormat("yyyy.MM.dd HH:mm");
    try {
            Date date=format.parse("2012.9.11 02:00");
                            Log.i("date", date.toGMTString());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.e("exception", e.getMessage());
        }

但我收到消息:“2012 年 9 月 10 日 22:00:00 GMT”,即日期不正确。我该如何解决?

4

5 回答 5

1

正确的日期。它是根据您的 GMT 偏移量计算的。

像这样11-Sep-2012 02:00:00使用date.toLocaleString()(不推荐使用的方法)打印它

或者您可以使用Calendar类打印日期:

SimpleDateFormat format=new SimpleDateFormat("yyyy.MM.dd HH:mm");
Date date=format.parse("2012.09.11 02:00");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(format.format(cal.getTime()));

这打印:2012.09.11 02:00

您可以查看http://www.vogella.com/articles/JavaDateTimeAPI/article.html了解更多信息

于 2012-10-10T06:28:39.413 回答
0

你正在打印date.toGMTString(),所以你得到“10 Sep 2012 22:00:00 GMT”,这不是一个不正确的字符串,而是格林威治标准时间的日期。请注意,不推荐使用toGMTString

如果你想以你的格式打印你的日期,你可以这样做

 Log.i("date", format.format(date));

如果您不想获得补充“0”,请使用

format=new SimpleDateFormat("yyyy.M.d HH:mm");
于 2012-10-10T06:22:13.070 回答
0

根据JavaDocdate.toGMTString()是一种已弃用的方法。

使用不推荐使用的方法不是一个好习惯。

使用date.toString()而不是date.toGMTString().

或者

format.format(date);

于 2012-10-10T06:28:21.253 回答
0

该方法toGMTString()已弃用。但是,作为解释,您可能处于不同的时区,因此具有不同的语言环境。尝试替换为date.toLocaleString()应该正确输出,尽管这也是一种已弃用的方法。

于 2012-10-10T06:29:06.810 回答
0

这是不正确的,因为您正在使用date.toGMTString()

只需尝试输出变量date,您就可以看到正确的时间!

于 2012-10-10T07:08:58.350 回答