Java 如何使用SimpleDataFormat解析字符串数据?

Java 如何使用SimpleDataFormat解析字符串数据?,java,Java,我有以下代码: 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) {

我有以下代码:

    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”,即日期不正确。我怎样才能修好它

您正在打印
date.togmString()
,因此您会得到“2012年9月10日22:00:00 GMT”,这不是错误的字符串,而是格林威治标准时间中的日期。请注意,这是不推荐的

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

 Log.i("date", format.format(date));
如果您不想获得补充“0”,请使用


您正在打印
date.togmString()
,因此您会得到“2012年9月10日22:00:00 GMT”,这不是一个错误的字符串,而是格林威治标准时间中的日期。请注意,这是不推荐的

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

 Log.i("date", format.format(date));
如果您不想获得补充“0”,请使用

根据,
date.togmString()
是一种不推荐使用的方法

使用不推荐的方法不是一个好的做法

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

format.format(日期)

根据,
date.togmString()
是一种不推荐使用的方法

使用不推荐的方法不是一个好的做法

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


format.format(日期)

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

要这样打印,请使用
date.tolocalString()
(不推荐使用的方法)

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

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


有关更多信息,您可以看到是正确的日期。它是根据您的GMT偏移量计算的

要这样打印,请使用
date.tolocalString()
(不推荐使用的方法)

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

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


有关更多信息,请参见方法
togmString()
已弃用。 但是,作为一种解释,您可能处于不同的时区,因此具有不同的区域设置。
尝试替换为
date。ToLocalString()
应能正确输出,尽管也是一种不推荐使用的方法。

该方法
TogmString()
已不推荐使用。 但是,作为一种解释,您可能处于不同的时区,因此具有不同的区域设置。
尝试替换为
date.toLocalString()
应能正确输出,尽管这也是一种不推荐的方法。

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


只要试着输出变量
date
,就可以看到正确的时间

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


只要试着输出变量
date
,就可以看到正确的时间

parse将字符串解释为本地时区的日期,toGMTString()以GMT/UTC格式打印日期,这就是为什么在输出中会看到不同的日期。看这一点,它非常详细。@БааСаааббббббббббббб107以GMT/UTC格式打印日期,这就是为什么您在输出中看到不同的日期。看这一点,它非常详细。@Бааабббббббббббббббббббб
是一种不推荐使用的方法。@Hardik Mishra我知道,这就是我添加日历实现的原因在我的注释之后添加的示例:)事实上,我正在处理它,而你在哪里发布你的评论:PJust FYI
date.ToLocalString()
是一种不推荐的方法。@Hardik Mishra我知道,这就是我添加日历实现的原因在我的评论之后添加的示例:)事实上我正在做这件事,而你在哪里发表你的评论:P