Java WEEK_OF_YEAR

时间:2017-07-16 14:07:15

标签: java date

我实现了以下方法:

    private int getWeek(String datum){

    SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
    Date date = null;
    try {
        date = format.parse(datum);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone( "Europe/Berlin" ));
    calendar.setTime(date);

    int week = calendar.get(Calendar.WEEK_OF_YEAR);
    return week;
}

但是当我用

调用方法时
getWeek("01.01.2017") 

它返回52.但它应该是1。 我的错误在哪里?

当我用

调用方法时
getWeek("01.01.2016")

它返回53.

2 个答案:

答案 0 :(得分:0)

您丢失了SimpleDateFormat中的SELECT mTbl.*, LEFT(date1, 10) as FormattedDate -- Is this really necessary? FROM (SELECT date1, STR_TO_DATE(LEFT(date1, 10), '%d-%M-%Y') as thedate FROM `grabt` ) mTbl WHERE mTbl.thedate >= '2016-01-19' AND mTbl.thedate <= '2016-01-25'; ,例如:

TimeZone

答案 1 :(得分:0)

Damnit ..这是一次巨大的脑力衰竭。 52是输入的正确答案。

在德国,第一周的第一周是新的一年中有4天或更长时间的第一周。

对不起。