我实现了以下方法:
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.
答案 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天或更长时间的第一周。对不起。