一尘不染

如何在Android中将Date转换为特定格式?

java

“ 2016年3月10日下午6:30:00”这是我的约会日期,我想将其转换为“
2016年3月10日”。我可以在android中使用SimpleDateFormat吗?我没有确切的模式来转换它。请帮助并提前感谢

String date="Mar 10, 2016 6:30:00 PM";
SimpleDateFormat spf=new SimpleDateFormat("Some Pattern for above date");
Date newDate=spf.format(date);
spf= new SimpleDateFormat("dd MMM yyyy");
String date = spf.format(newDate);

这个步骤行得通吗?如果是,有人可以给我这样的格式吗?提前致谢。


阅读 322

收藏
2020-09-08

共1个答案

一尘不染

这是您应该使用的修改后的代码:

String date="Mar 10, 2016 6:30:00 PM";
SimpleDateFormat spf=new SimpleDateFormat("MMM dd, yyyy hh:mm:ss aaa");
Date newDate=spf.parse(date);
spf= new SimpleDateFormat("dd MMM yyyy");
date = spf.format(newDate);
System.out.println(date);

使用hh几个小时才能获得正确的时间。

Java 8及更高版本

Java 8引入了用于时间操纵的新类,因此在这种情况下请使用以下代码:

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd, yyyy h:mm:ss a");
    LocalDateTime dateTime = LocalDateTime.parse(date, formatter);
    DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("dd MMM yyyy");
    System.out.println(dateTime.format(formatter2));

使用h的小时格式,因为在这种情况下,每小时只有一个数字。

2020-09-08