课程咨询 :186-8884-0703

深圳Java培训 > 达内新闻 > 几种JAVA日期的常见操作 (上)
  • 几种JAVA日期的常见操作 (上)

    发布:深圳Java培训      来源:达内新闻      时间:2015-12-25

  • Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,

    1. 日期取值

    几种JAVA日期的常见操作 (上)

    在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处理。这里便不介绍 Date 类的操作,让我们直奔主题吧,如何利用 Calendar 类取得现在的日期时间。

    由于 Calendar 的构造器方法被 protected 修饰,所以我们会通过 API 中提供的 getInstance 方法来创建 Calendar 对象。

    //有多个重载方法创建 Calendar 对象

    Calendar now = Calendar.getInstance(); //默认

    //指定时区和地区,也可以只输入其中一个参数

    Calendar now = Calendar.getInstance(timeZone, locale);

    然后我们就可以通过该对象取得当前的各种时间参数了。

    int year = now.get(Calendar.YEAR); //2015,当前年份

    int month = now.get(Calendar.MONTH) + 1; //12,当前月,注意加 1

    int day = now.get(Calendar.DATE); //23,当前日

    Date date = now.getTime(); //直接取得一个 Date 类型的日期

    要取得其他类型的时间数据仅需修改 now.get() 内的参数,除了以上三种参数,其他常用参数如下:

    Calendar.DAY_OF_MONTH:日期,和 Calendar.DATE 相同

    Calendar.HOUR:12 小时制的小时数

    Calendar.HOUR_OF_DAY:24小时制的小时数

    Calendar.MINUTE:分钟

    Calendar.SECOND:秒

    Calendar.DAY_OF_WEEK:周几

    除了取得时间数据,我们也可以通过 Calendar 对象设置各种时间参数。

    //只设定某个字段的值

    // public final void set(int field, int value)

    now.set(Calendar.YEAR, 2016);

    //设定年月日或者年月日时分或年月日时分秒

    // public final void set(int year, int month, int date[, int hourOfDay, int minute, int second])

    now.set(2016, 1, 1[, 11, 1, 1]);

    //直接传入一个 Date 类型的日期

    // public final void setTime(Date date)

    now.set(date);

    注意:

    当设置了时间参数后,其他相关的数值都会重新计算,例如当你把日期设为 11 号后,周几就会作对应变化。

    获得的月份加 1 才是实际月份。

    在 Calendar 类中,周日是 1,周一是 2,以此类推。

    2. 日期转换

    聊完日期取值,接下来聊聊日期转换,转换一般是 Date 型日期与 String 型字符串之间的相互转换,我主要利用 java.text.SimpleDateFormat 进行转换操作。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    try {

    //日期转字符串

    Calendar calendar = Calendar.getInstance();

    Date date = calendar.getTime();

    String dateStringParse = sdf.format(date);

    //字符串转日期

    String dateString = "2016-01-01 11:11:11";

    Date dateParse = sdf.parse(dateString);

    } catch (ParseException e) {

    e.printStackTrace();

    }

    注意:

    创建 SimpleDateFormat 对象时必须指定转换格式。

    转换格式区分大小写,yyyy 代表年份,MM 代表月份,dd 代表日期,HH 代表 24 进制的小时,hh 代表 12 进制的小时,mm 代表分钟,ss 代表秒。

    更多内容请点击【深圳JAVA培训】

上一篇:学习总结——Java Executor的框架

下一篇:几种JAVA日期的常见操作 (下)

最新开班日期  |  更多

Java--零基础周末班

Java--零基础周末班

开班日期:3月31日

Java--大数据全日制班

Java--大数据全日制班

开班日期:3月31日

Java--大数据周末班

Java--大数据周末班

开班日期:3月31日

Java课程训练营时间安排

Java课程训练营时间安排

开班日期:3月31日

  • 地址:深圳市宝安区共乐路西乡商会大厦10楼——深圳JAVA培训中心宝安校区
    深圳市龙岗区横岗力嘉路2013文化创客园A栋——深圳JAVA培训中心龙岗校区
  • 课程培训电话:186-8884-0703 全国免费咨询热线:400-827-0010
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56