时间操作模版




每个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));
    }
}
原文地址:https://www.cnblogs.com/dacong-/p/5715375.html