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

Rah*_*rma 17 java android

"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);
Run Code Online (Sandbox Code Playgroud)

这个步骤会起作用吗?如果是,有人可以给我一个这种格式的模式吗?提前致谢.

use*_*339 36

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

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);
Run Code Online (Sandbox Code Playgroud)

使用hh数小时才能获得正确的时间.


use*_*685 7

您应该将parse()字符串转换为日期,然后将其格式化为所需的格式。您可以使用MMM dd, yyyy HH:mm:ss aformat 来解析给定的字符串。

这是代码片段:

public static void main (String[] args) throws Exception
{
    String date = "Mar 10, 2016 6:30:00 PM";
    SimpleDateFormat spf = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a");
    Date newDate = spf.parse(date);
    spf = new SimpleDateFormat("dd MMM yyyy");
    String newDateString = spf.format(newDate);
    System.out.println(newDateString);
}
Run Code Online (Sandbox Code Playgroud)

输出:

10 Mar 2016
Run Code Online (Sandbox Code Playgroud)


Sye*_*der 6

从字符串到日期和日期到字符串的转换

String deliveryDate="2018-09-04";                       
SimpleDateFormat dateFormatprev = new SimpleDateFormat("yyyy-MM-dd");
Date d = dateFormatprev.parse(deliveryDate);
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE dd MMM yyyy");
String changedDate = dateFormat.format(d);
Run Code Online (Sandbox Code Playgroud)


Rah*_*rma 5

我已经为这个问题创建了一个方法.我们只需要传递当前日期格式,所需日期格式日期字符串.

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;
}
Run Code Online (Sandbox Code Playgroud)

此方法将以您需要的格式返回Date String.在你的情况下,方法调用将是:

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