如何将日期转换为android中的特定格式?

新手上路,请多包涵

“2016 年 3 月 10 日 6:30:00 PM”这是我的日期,我想将其转换为“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 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 335
2 个回答

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

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

原文由 user987339 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用以下方法解决此问题。我们只需要传递 Current date formatrequired date formatDate String

 private String changeDateFormat(String currentFormat,String requiredFormat,String dateString){
    String result="";
    if (Strings.isNullOrEmpty(dateString)){
        return result;
    }
    SimpleDateFormat formatterOld = new SimpleDateFormat(currentFormat, Locale.getDefault());
    SimpleDateFormat formatterNew = new SimpleDateFormat(requiredFormat, Locale.getDefault());
    Date date=null;
    try {
        date = formatterOld.parse(dateString);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    if (date != null) {
        result = formatterNew.format(date);
    }
    return result;
}

此方法将以您需要的格式返回日期字符串。在您的情况下,方法调用将是:

 String date = changeDateFormat("MMM dd, yyyy hh:mm:ss a","dd MMM yyyy","Mar 10, 2016 6:30:00 PM");

原文由 Rahul Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题