Joda-Time的使用以及其与jdk中时间类型的相互转换

来源:互联网 发布:js canva绘制渐变色线 编辑:程序博客网 时间:2024/06/11 13:37

Joda-Time存在的目的:

任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐的,而Joda-Time就是在这样的背景下诞生的,所以说Joda-Time相较于原生的java中的Date和Calendar时间操作而言,功能更加的强大,但是操作却更加的简化,下面是其显示的代码示例:

package com.makotogroup.joda;import java.util.Calendar;import java.util.Date;import java.util.Locale;import org.apache.log4j.Logger;import org.joda.time.DateTime;import org.joda.time.format.DateTimeFormat;import org.joda.time.format.DateTimeFormatter;public class TestDateTime {    private static Logger log = Logger.getLogger(TestDateTime.class);    /**   * 获取当前时间   * @return   */  public DateTime getCurrentTime(){        return new DateTime();    }  public static void main(String[] args) {        //当前的Joda-time版本为:joda-time-2.9.9.jar    //Joda-time的版本不同,其支持的方法也不尽相同,比如说在joda-time-1.6.jar中,并不支持    //DateTime.parse(String,DateTimeFormatter),而在joda-time-2.9.9.jar中是支持的        TestDateTime testDateTime=new TestDateTime();    //获取当前时间    DateTime dateTime=testDateTime.getCurrentTime();    //获取当前时间字符串    String dateTimeString=dateTime.toString("yyyy-MM-dd HH:mm:ss");    log.info("当前时间:"+dateTimeString);    //获取年    log.info("当前年:"+dateTime.getYear());    //获取月    log.info("当前月:"+dateTime.getMonthOfYear());    //获取日    log.info("当前日:"+dateTime.getDayOfMonth());    //获取小时    log.info("当前小时:"+dateTime.getHourOfDay());    //获取分钟    log.info("当前分钟:"+dateTime.getMinuteOfHour());    //获取秒    log.info("当前秒:"+dateTime.getSecondOfMinute());    //获取毫秒    log.info("当前毫秒:"+dateTime.getMillisOfSecond());    //获取当前时间戳    log.info("当前的时间戳为:"+dateTime.getMillis());    //获取周    log.info("当前周为:"+dateTime.getWeekOfWeekyear());    //当前时区为(东八区:INFO  - +08:00):    log.info("当前周为:"+dateTime.getZone().toString());        //修改周:    log.info("当前周加上两周,结果为:"+dateTime.plusWeeks(2).getWeekOfWeekyear());    //减去2年    log.info("减去两年,结果为:"+dateTime.plusYears(-2).getYear());        //String转换为Joda-time    DateTimeFormatter dtf=DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");    //方法一    DateTime dateTime2 = DateTime.parse(dateTimeString, dtf);    //方法二    DateTime dateTime3=dtf.parseDateTime(dateTimeString);        log.info("格式化后的结果1:"+dateTime2);    log.info("格式化后的结果2:"+dateTime3);        //将Joda-time转换成String    log.info("Joda-time转换成String:"+dateTime.toString("yyyy-MM-dd HH:mm:ss a"));        //将Date转换成Joda-time    Date date=new Date();    DateTime dateTime4=new DateTime(date);    log.info("Date转DateTime:"+dateTime4);        //将Joda-time转换成Date    log.info("Joda-time转换成Date:"+dateTime4.toDate());        //将Calendar转换成Joda-time    Calendar calendar=Calendar.getInstance();    DateTime dateTime5=new DateTime(calendar);    log.info("将Calendar转换成DateTime:"+dateTime5);        //Joda-time转换成Calendar    Calendar calendar2=dateTime5.toCalendar(Locale.CHINA);    log.info("将Joda-time转换成Calendar:"+calendar2);        //自定义时间    //参数分别是:年,月,日,时,分,秒,毫秒    DateTime dateTime6=new DateTime(2015,1,1,1,1,1,1);    log.info("自定义的时间:"+dateTime6.toString("yyyy-MM-dd HH:mm:ss a"));            //将Joda-time转换成long类型    log.info("Joda-time转换成long类型:"+dateTime6.getMillis());    //将long类型转换成Joda-time    long time =  1420045261001L;    DateTime dateTime7 = new DateTime(time);    log.info("long转换成Joda-time:"+dateTime7);      }}

最后附上Joda-Time api文档的官方地址:

http://www.joda.org/joda-time/apidocs/index.html


0 0