使用SimpleDateFormat分别获取日,月和年

Joh*_*ror 8 java android date simpledateformat

SimleDateFormat喜欢这个

SimpleDateFormat format = new SimpleDateFormat("MMM dd,yyyy  hh:mm");
String date = format.format(Date.parse(payback.creationDate.date));
Run Code Online (Sandbox Code Playgroud)

我给的日期格式是这样的"Jan,23,2014".

现在,我希望分别获得日,月和年.我该如何实现呢?

Dun*_*nes 15

如果您需要单独获取值,请使用多个值SimpleDateFormat.

SimpleDateFormat dayFormat = new SimpleDateFormat("dd");
String day = dayFormat.format(Date.parse(payback.creationDate.date));

SimpleDateFormat monthFormat = new SimpleDateFormat("MM");
String month = monthFormat .format(Date.parse(payback.creationDate.date));
Run Code Online (Sandbox Code Playgroud)

等等

  • 注意Date.parse()是@deprecated,根据API,建议使用DateFormat.parse (3认同)

Udo*_*ski 14

    SimpleDateFormat format = new SimpleDateFormat("MMM dd,yyyy  hh:mm", Locale.ENGLISH);

    Date theDate = format.parse("JAN 13,2014  09:15");

    Calendar myCal = new GregorianCalendar();
    myCal.setTime(theDate);

    System.out.println("Day: " + myCal.get(Calendar.DAY_OF_MONTH));
    System.out.println("Month: " + myCal.get(Calendar.MONTH) + 1);
    System.out.println("Year: " + myCal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)


nik*_*kis 7

哇,SimpleDateFormat获取字符串部分?如果您的输入字符串类似于"Jan,23,2014",则可以更轻松地解决:

String input = "Jan,23,2014";
String[] out = input.split(",");
System.out.println("Year = " + out[2]);
System.out.println("Month = " + out[0]);
System.out.println("Day = " + out[1]);
Run Code Online (Sandbox Code Playgroud)

输出:

Year = 2014
Month = Jan
Day = 23
Run Code Online (Sandbox Code Playgroud)

但如果您SimpleDateFormat因某种原因真的想使用,解决方案将如下:

String input = "Jan,23,2014";
SimpleDateFormat format = new SimpleDateFormat("MMM,dd,yyyy");
Date date = format.parse(input);
Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
calendar.setTime(date);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(new SimpleDateFormat("MMM").format(calendar.getTime()));
Run Code Online (Sandbox Code Playgroud)

输出:

2014
23
Jan
Run Code Online (Sandbox Code Playgroud)