本文给出一个将日期格式设置成当天最小和最大值的例子。这个在如下的场景可以用到。
商品上下架场景:
前台选择日期的时候一般按照年月日来选择,假设这些商品需要在指定当天上架或者下架,我们一般都会写一个JOB来实现这些商品自动上下架过程。
这个时候,商品上架的日期可以设置成当天最小值,而商品下架的日期可以使用当天的最大值。
这个时候,商品上架的日期可以设置成当天最小值,而商品下架的日期可以使用当天的最大值。
下面我们就来简单完成这个功能。注:如下使用的DateUtils类来自common-lang包
将日期转换成当天最小值
import java.util.Calendar; import java.util.Date; import org.apache.commons.lang.time.DateUtils; public class DateTest { public static void main(String[] args) { Date beginDate = new Date(); //2014-12-4 11:22:16 System.out.println(beginDate.toLocaleString()); Calendar calendar = DateUtils.toCalendar(beginDate); calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMinimum(Calendar.HOUR_OF_DAY)); calendar.set(Calendar.MINUTE, calendar.getActualMinimum(Calendar.MINUTE)); calendar.set(Calendar.SECOND, calendar.getActualMinimum(Calendar.SECOND)); beginDate = calendar.getTime(); //2014-12-4 0:00:00 System.out.println("当天日期的最小值为:"); System.out.println(beginDate.toLocaleString()); } }
当天日期的最小值为: 2014-12-4 0:00:00
将日期转换成当天最大值
import java.util.Calendar; import java.util.Date; import org.apache.commons.lang.time.DateUtils; public class DateTest { public static void main(String[] args) { Date endDate = new Date(); //2014-12-4 11:24:44 System.out.println(endDate.toLocaleString()); Calendar calendar = DateUtils.toCalendar(endDate); calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMaximum(Calendar.HOUR_OF_DAY)); calendar.set(Calendar.MINUTE, calendar.getActualMaximum(Calendar.MINUTE)); calendar.set(Calendar.SECOND, calendar.getActualMaximum(Calendar.SECOND)); endDate = calendar.getTime(); System.out.println("当天日期的最大值为:"); //2014-12-4 23:59:59 System.out.println(endDate.toLocaleString()); } }
2014-12-4 15:29:22 当天日期的最大值为: 2014-12-4 23:59:59