每个coder都做过很多时间的处理,上学的时候一直使用java.util包下的日期操作,java.util.Date/java.util.Calendar真TM太难用了,相信一定给您制造了很多的麻烦吧。刚工作的时候领导就推荐我使用Joda—Time,一个完全可以替代Java的日期时间库。使用过之后,你就会有体会了。
需要的jar包:joda-time joda-convert
public class TimeTemplate {
private static final Log LOG = LogFactory.getLog(TimeTemplate.class);
public static void main(String[] args) {
//日期的初始化
DateTime dateTime = new DateTime(2010, 10, 13, 10, 30, 50, 333); // 2010年10月13日10点30分50秒333毫秒
LOG.info(dateTime);
dateTime = new DateTime(); //new DateTime(System.currentTimeMillis());
LOG.info(dateTime);
//日期和字符串的互相转换
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd");
dateTime = DateTime.parse("20101012",formatter);
LOG.info(dateTime.toString("yyyy-MM-dd HH:mm:ss"));
//日期的计算
dateTime = dateTime.plusDays(1).minusSeconds(1);
LOG.info(dateTime);
//特殊日期计算
dateTime = dateTime.dayOfMonth().withMaximumValue(); //月末日期
LOG.info(dateTime);
dateTime = dateTime.plusDays(90).dayOfWeek().withMinimumValue(); //90天后那周的周一
LOG.info(dateTime);
//日期比较
DateTime d1 = new DateTime("2018-02-01");
DateTime d2 = new DateTime("2012-05-01");
//和系统时间比
LOG.info(d1.isAfterNow());
LOG.info(d1.isBeforeNow());
LOG.info(d1.isEqualNow());
//和其他日期比
LOG.info(d1.isAfter(d2));
LOG.info(d1.isBefore(d2));
LOG.info(d1.isEqual(d2));
}
}