Android日期解析(提取月份和年份)

时间:2014-12-11 08:00:56

标签: android parsing date

我希望我的应用以格式解析日期" dd-MMM-yyyy"。当我尝试获得月份并获得其他结果时,该日期已成功解析。我把06-sep-2014作为日期。但是,当我尝试从解析日期中提取月份和年份时,它显示的是8月而不是9和114而不是2014年。

logcat输出

6

8

114

这是我的代码

    String date1 = "06 sep 2014";
    SimpleDateFormat format1 = new SimpleDateFormat("dd MMM yyyy");
    SimpleDateFormat format2 = new SimpleDateFormat("d MMM yyyy");

    Date date;

    try {
        if (date1.length() == 11) {
            date = format1.parse(date1);

        } else {
            date = format2.parse(date1);

        }
        int day=date.getDate();
        int  mon1=date.getMonth();
        int year1=date.getYear();

        System.out.println("date is:"+ date);

        System.out.println(day);
        System.out.println(mon1);
        System.out.println(year1);


    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

3 个答案:

答案 0 :(得分:4)

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public final class DateParseDemo {
    public static void main(String[] args){
         final DateFormat df = new SimpleDateFormat("dd MMM yyyy");
         final Calendar c = Calendar.getInstance();
         try {
             c.setTime(df.parse("06 sep 2014"));
             System.out.println("Year = " + c.get(Calendar.YEAR));
             System.out.println("Month = " + (c.get(Calendar.MONTH)));
             System.out.println("Day = " + c.get(Calendar.DAY_OF_MONTH));
         } 
         catch (ParseException e) {
             e.printStackTrace();
         }
    }
}

输出:

  • 年= 2014
  • 月= 8
  • Day = 6

至于月份字段,这是从0开始的。这意味着January = 0和December = 11.正如javadoc所述,

get和set的字段编号,表示月份。这是特定于日历的值。格列高利历和朱利安历的一年中的第一个月是1月,即0;最后一个取决于一年中的月数。

答案 1 :(得分:3)

因为 date.getyear 返回一个值,该值是从包含或以此日期所代表的时间开始的年份减去1900的结果对象,在本地时区解释。

也许,你可以使用例如;

int year1 = date.getYear();
 的System.out.println(YEAR1 + 1900);

答案 2 :(得分:0)

使用Date类,它为您提供从1900年开始的年份。获得所需内容的更好方法是使用Calendar类。见http://developer.android.com/reference/java/util/Date.html#getYear()