3

Javaを使用して「17-Jun」形式の日付を解析する必要がありますが、問題は、SimpleDateFormatを使用して「 dd-MM 」形式を解析しようとすると、 「Wed Jun 17 00:00:00 IST 1970」として返されることです。 1970 年ではなく、現在 (2014 年) の年を取得できます。

私の結果:
1970 年 6 月 17 日

予想される結果:
2014 年 6 月 17 日

4

10 に答える 10

5

これを見てください..

Calendar c = Calendar.getInstance();
c.set(Calendar.DATE, 17);
c.set(Calendar.MONTH, 5);
c.set(Calendar.YEAR, c.get(Calendar.YEAR));
Date date=new Date(c.getTimeInMillis());
SimpleDateFormat simpleDateformatter = new SimpleDateFormat("dd/mmm/yyyy");
String convertedDate = simpleDateformatter .format(date);

年を取得するには、単に使用できます

Calendar cal = Calendar.getInstance();
cal.get(Calendar.YEAR) will fetch you current year

それが役に立てば幸いです... :)

于 2014-01-08T05:47:05.713 に答える
3

これを試して

    Calendar c = Calendar.getInstance();
        c.set(Calendar.DATE, 17);
       c.set(Calendar.MONTH, 5);
    c.set(Calendar.YEAR, c.get(Calendar.YEAR));
Date d=new Date(c.getTimeInMillis());
    SimpleDateFormat formatter = new SimpleDateFormat("dd- mmm");
        String conDate = formatter.format(d);
于 2014-01-08T05:38:05.287 に答える
2

このようにしてください

Date date = new SimpleDateFormat("dd-MMM-yyyy").parse("17-Jun-"+ Calendar.getInstance().get(Calendar.YEAR));
于 2014-01-08T05:37:12.730 に答える
2

ユーティリティ メソッドを作成する必要があります。SimpleDateFormat には、存在しない年を現在の年として解釈するものはありません。このようなもの:

public static Date parseDate(String dateString) throws ParseException {

    //determine current year
    Calendar today = Calendar.getInstance();
    int currentYear = today.get(Calendar.YEAR);

    //parse input
    SimpleDateFormat format = new SimpleDateFormat("dd-MMM");
    Date parsed = format.parse(dateString);

    // set current year on parsed value
    Calendar cal = Calendar.getInstance();
    cal.setTime(parsed);
    cal.set(Calendar.YEAR, currentYear);

    return cal.getTime();

}
于 2014-01-08T06:05:29.327 に答える
1

java.time

Java 8 では、次のようなことができます。

   DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d-MMM");
   MonthDay md = MonthDay.parse("17-Jun", dtf);
   LocalDate d = LocalDate.now().with(md);
   System.out.println(d.getDayOfMonth());
   System.out.println(d.getMonthValue());
   System.out.println(d.getYear());
于 2018-06-04T11:28:41.953 に答える