总结日常代码出现的问题.
1.获取周一日期
期望根据当前日期获取周一日期.
Date today = CommonDateTimeUtils.parseDate("2014-11-16"); //周日
System.out.println("today = " + today);
Calendar calendar = Calendar.getInstance();
calendar.setTime(today);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date monday = DateUtils.truncate(calendar.getTime(), Calendar.DAY_OF_MONTH);
System.out.println("monday = " + monday);
如上,today是2014-11-16(周日),获取周一的时间,我们期望获取得到2014-11-10(周一),实际周一的时间为2014-11-17(周一).
原因是时间系统默认周日是一周的第一天.我们可以设置周一是一周的第一天.
Date today = CommonDateTimeUtils.parseDate("2014-11-16"); //周日
System.out.println("today = " + today);
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(today);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date monday = DateUtils.truncate(calendar.getTime(), Calendar.DAY_OF_MONTH);
System.out.println("monday = " + monday);
2.Velocity String to number
经常在Velocity中将字符串转成数字,比如double或者int,写法如下:
1 2 |
|
大概的理解就是:volocity会把基本数据类型的静态方法转换到velocity里。所以,定义一个int,就能调用Integer中的方法。
注意其中第一句#set($Integer = 0)是必须的。