Java 基础之日期操作总结

一、日期格式化, 以及字符串转换成日期

主要用到 SimpleDateFormat 类实现日期的格式化,以及日期字符串的解析。

示例:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化
String sDate = sdf.format(new Date());
System.out.println(sDate);

// 日期字符串解析
String str = "2016-05-24 12:20:12";
try {
    Date date = sdf.parse(str);
    System.out.println(sdf.format(date));
} catch (ParseException e) {
    e.printStackTrace();
}

输出为:
这里写图片描述

二、 几天前, 几小时前

主要用到 Calendar 类的 getTimeInMillis 方法。
示例:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = "2016-05-23 12:20:12";

try {
    // 解析日期字符串
    Date date = sdf.parse(str);
    Calendar oldCal = Calendar.getInstance();

    // 设置日期
    oldCal.setTime(date);

    // 获取当前日期
    Calendar curCal = Calendar.getInstance();
    long val = curCal.getTimeInMillis() - oldCal.getTimeInMillis();

    // 输出 几天前
    System.out.println(val/(1000 * 60 * 60 * 24) + " 天前");
    // 输出 几小时前
    System.out.println(val/(1000 * 60 * 60) + " 小时前");

} catch (ParseException e) {
    e.printStackTrace();
}

输出为:
这里写图片描述

三、计算几天, 几小时之前(或者之后)的日期

主要用到 Calendar 类的 add 方法。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = "2016-05-23 12:20:12";

// 获取当前日期
Calendar curCal = Calendar.getInstance();

// 输出当前日期
System.out.println("日期基数: " + sdf.format(curCal.getTime()));

// 设置并输出 2小时后的日期
curCal.add(Calendar.HOUR_OF_DAY, 2);
System.out.println("2小时后: " + sdf.format(curCal.getTime()));

// 设置并输出 1天后的日期
curCal.add(Calendar.DAY_OF_MONTH, 1);
System.out.println("1天后: " + sdf.format(curCal.getTime()));

// 设置并输出 2小时前的日期
curCal.add(Calendar.HOUR_OF_DAY, -2);
System.out.println("2小时前: " + sdf.format(curCal.getTime()));

输出为:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值