如何重新格式化日期和时间?

时间:2017-11-07 08:29:10

标签: java android android-date

如何将24小时时间格式转换为12小时格式?我知道这个问题已被多次询问,但我的问题不同了。我现在的时间是:

  

Tue Nov 07 18:44:47 GMT + 05:00 2017

我只想要从我约会时间下午6:44开始。我试过这个:

private void convertTime(String time)
{
    try {
        final SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
        final Date dateObj = sdf.parse(time);
        System.out.println(dateObj);
        System.out.println(new SimpleDateFormat("K:mm a").format(dateObj));
    } catch (final ParseException e) {
        e.printStackTrace();
    }
}

3 个答案:

答案 0 :(得分:3)

final SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");

使用hh将为您提供12小时格式和HH 24小时格式。有关documentation的更多详情。

修改

为了将日期字符串解析为Date对象,您的初始格式必须如下:

final SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss 'GMT'Z yyyy");
final Date dateObj = sdf.parse(time);

之后,您可以根据需要设置时间格式。

答案 1 :(得分:2)

来自SimpleDateFormat文档:

  

" h:mm a&#34 ;: 12:08 PM

所以你需要的格式:

  

我只想从我的约会时间下午6:44

是:

final SimpleDateFormat sdf1 = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");
Date date = sdf1.parse(time);
final SimpleDateFormat sdf = new SimpleDateFormat("h:mm a");
String newDateString = sdf.format(date);

答案 2 :(得分:1)

try {
    final SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
    final Date dateObj = sdf.parse(time);
    System.out.println(dateObj);
    System.out.println(new SimpleDateFormat("K:mm a").format(dateObj));
} catch (final ParseException e) {
    e.printStackTrace();
}