温馨提示:本文翻译自stackoverflow.com,查看原文请点击:java - How to convert Date to a particular format in android?
android java

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

发布于 2020-03-27 16:07:57

“ 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);

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

查看更多

查看更多

提问者
Rahul Verma
被浏览
18
user987339 2019-05-17 19:21

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

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的小时格式,因为在这种情况下,每小时只有一个数字。