在 Java/Android 中获取年、月、日和时间形式 "Tue, 12 Jan 2016 09:40:07 GMT"

get year, month, day and time form "Tue, 12 Jan 2016 09:40:07 GMT" in Java/Android

我知道这类问题在很多网站上问了很多时间。 直到我没有得到解决方案,这就是为什么我把这个问题放在这里。

我想要日期格式的年、月、日、日期和时间

2016 年 1 月 12 日星期二09:40:07格林威治标准时间

我正在从 HttpResponse header 获取此日期格式,并需要此日期格式的年、月、日、日期。

我正在使用但未获得实际价值的以下代码:

SimpleDateFormat dateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z");
Date date;
try {
date = dateFormat.parse(header.getValue());// here we are getting date in format "Tue, 12 Jan 2016 09:40:07 GMT"
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

System.out.println("YEAR: " + calendar.YEAR);
System.out.println("MONTH: " + calendar.MONTH);
System.out.println("DATE: " + calendar.DATE);

} catch (ParseException e) {
e.printStackTrace();
}

我也试过这个:

1.

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

2.

Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("GMT"));

但是以上所有代码都给出了以下结果:

YEAR: 1
MONTH: 2
DATE: 5

将日历实例的时区设置为 GMT。

SimpleDateFormat dateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z");
    Date date;
    try {
    date = dateFormat.parse(header.getValue());// here we are getting date in format "Tue, 12 Jan 2016 09:40:07 GMT"
    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); // set correct timezone to calendar
    calendar.setTime(date);

    System.out.println("YEAR: " + calendar.YEAR);
    System.out.println("MONTH: " + calendar.MONTH);
    System.out.println("DATE: " + calendar.DATE);

    } catch (ParseException e) {
    e.printStackTrace();
    }

您正在使用 calendar.YEARcalendar.MONTHcalendar.DATE,日历 class 包含静态 YEAR, MONTH and DATE 变量,因此它打印这些变量的值 即 1,2 和 5。 而不是使用它:

System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));