Java 日期类型

java.util.Date (yyyy-MM-dd HH:mm:ss)

Date日期类型在开发过程中主要用于

  1. 将日期按照一定的格式进行格式化String(格式化输出)
  2. 获取当前系统时间,new Date(), getTime(获取当前日期距离元年的ms数,返回类型为Long)
  3. 映射为数据库的Date类型
  4. 日期早晚的比较

而对于日期的计算,Date类型中获取年月日时分秒的方法都已经被废弃。

        // String parse to Date
        String dateStr = "2019-11-24 11:08:28";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date strDate = format.parse(dateStr);
        log.info("String parse to Date: " + strDate.toString());

        // Date parse to String
        String dateToStr = format.format(strDate);
        Assert.assertEquals(dateStr, dateToStr);
        log.info("Date parse to Date: " + dateToStr);

        // Date parse to Long(Millisecond)/ms since January 1, 1970, 00:00:00 GMT
        Long dateMillisecond = strDate.getTime();
        log.info("Date parse to Millisecond: " + dateMillisecond);

        // Long(Millisecond) parse to Date
        Date millisecondDate = new Date(dateMillisecond);
        Assert.assertEquals(millisecondDate, strDate);
        log.info("Millisecond parse to Date: " + millisecondDate.toString());

        // 日期早晚的比较,本质上是转换为毫秒数,再进行大小的比较
        String startTime = "2019-11-24 19:40:00";
        String endTime = "2019-11-24 19:50:00";
        Date startDate = format.parse(startTime);
        Date endDate = format.parse(endTime);
        Assert.assertTrue(startDate.before(endDate));
        Assert.assertTrue(endDate.after(startDate));

java.util.Calendar 日历

Calendar 日历类型主要用于

  1. 可以获取当前的年月日时分秒
  2. 可以和日期类型Date相互转换
  3. 用于日期的计算

java.util.Calendar在Java应用程序的操作中完全替代java.util.Date。

        // 获取年,月,日,时,分,秒, 输出结果为: 2019年11月24日19时0分7秒, 注意月份从0开始
        Calendar calendar = Calendar.getInstance();
        log.info(calendar.get(Calendar.YEAR) + "年" + (calendar.get(Calendar.MONTH) + 1) + "月"
                + calendar.get(Calendar.DAY_OF_MONTH) + "日" + calendar.get(Calendar.HOUR_OF_DAY) + "时"
                + calendar.get(Calendar.MINUTE) + "分" + calendar.get(Calendar.SECOND) + "秒" );

        // Calendar to Date
        Date date = calendar.getTime();

        // Date to Calendar
        calendar.setTime(date);

        // 获取下一年的日期, 获取前一年的日期
        log.info(calendar.getTime().toString());
        calendar.add(Calendar.YEAR, 1);
        log.info(calendar.getTime().toString());
        calendar.add(Calendar.YEAR, -1);
        log.info(calendar.getTime().toString());

数据库类型映射

Java 不同的日期存储格式如下

java.util.Date : yyyy-MM-dd HH:mm:ss
java.sql.Date : yyyy-MM-dd
java.sql.Time : HH:mm:ss
java.sql.Timestamp : yyyy-MM-dd HH:mm:ss[.nanos] (毫微秒)

java.util.Date为java.sql.Date, java.sql.Time, java.sql.Timestamp的父类,子类对父类做了扩充和包装。

Mysql的日期类型存储格式如下

Date : yyyy-MM-dd
Datetime : yyyy-MM-dd HH:mm:ss
Time : HH:mm:ss
Timestamp : yyyy-MM-dd HH:mm:ss[.fraction] (毫秒)

Mysql 的Timestamp类型为时间戳,精确到ms,表示距离January 1, 1970, 00:00:00 GMT的时间差。

Mysql 的日期类型和Java的映射如下

java.util.Date  // Datetime
java.sql.Date   // Date
java.sql.Time   // Time 
java.lang.Long  // Timestamp

Oracle的日期类型存储格式如下

DATE : yyyy-MM-dd HH:mm:ss
TIMESTAMP : yyyy-MM-dd HH:mm:ss[.nanos] (纳秒)

Oracle 的日期类型和Java的映射如下

java.util.Date		// DATE
java.sql.Timesatmp  // TIMESTAMP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值