同福

Java里日期和时间的使用【20210327】

介绍

介绍

今天我们来学习在java程序里面使用日期和时间的方法。这里面涉及到Calendar、Date、Timestamp几个对象,Calendar主要用来获得当前时间的种子再转换成其他格式;Date格式比较容易转换成数字,方便进行比较大小;Timestamp格式比较方便和字符串互转,在实体对象里用的比较广。

当前时间

获取当前时间

  • yyyy:4位数年份

  • MM:2位数月份

  • dd:2位数天数

  • HH:2位数小时

  • mm:2位数分数

  • ss:2位数秒数

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
String sDate = simpleDateFormat.format(calendar.getTime());

获取时间戳

Calendar calendar = Calendar.getInstance();
Long timeUnix = calendar.getTimeInMillis();

常用函数

实现 date

打印当前时间的函数

private String date(String format){
    SimpleDateFormat simpleDateFormat;
    Calendar calendar;
    String sDate;

    simpleDateFormat = new SimpleDateFormat(format);
    calendar = Calendar.getInstance();
    sDate = simpleDateFormat.format(calendar.getTime());

    return sDate;
}

示例

String sDateNow = date("yyyy/MM/dd HH:mm:ss");

实现 dateAdd

打印从当前时间偏移一定量的时间的函数

  • field 来自 Calendar 的枚举

  • amount 可以是正整数,也可以是负整数,表示向前偏移还是向后偏移

private String dateAdd(String format, int field, int amount){
    SimpleDateFormat simpleDateFormat;
    Calendar calendar;
    String sDate;

    simpleDateFormat = new SimpleDateFormat(format);
    calendar = Calendar.getInstance();
    calendar.add(field, amount);
    sDate = simpleDateFormat.format(calendar.getTime());

    return sDate;
}

示例,昨天的这个时候

String sDateYesterday = dateAdd("yyyy/MM/dd HH:mm:ss", Calendar.DATE, -1);

示例,上一小时

String sDateLastHour = dateAdd("yyyy/MM/dd HH:mm:ss", Calendar.HOUR, -1);

示例,上一分钟

String sDateLastMinute = dateAdd("yyyy/MM/dd HH:mm:ss", Calendar.MINUTE, -1);

示例,上一秒钟

String sDateLastSecond = dateAdd("yyyy/MM/dd HH:mm:ss", Calendar.SECOND, -1);

示例,上个月的今天

String sDateLastMonth = dateAdd("yyyy/MM/dd HH:mm:ss", Calendar.MONTH, -1);

示例,去年的今天

String sDateLastYear = dateAdd("yyyy/MM/dd HH:mm:ss", Calendar.YEAR, -1);

实现 strtotime

通过一个时间的字符串得到一个Timestamp对象

对象转换

Date和Timestamp

Date转Timestamp

Date date = Calendar.getInstance().getTime();
Timestamp timestamp = new Timestamp(date.getTime());

Timestamp转Date

Timestamp timestamp = new Timestamp(Calendar.getInstance().getTime().getTime());
Date date = new Date(timestamp.getTime());

Date和String

Date转String

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = Calendar.getInstance().getTime();
String sDate = simpleDateFormat.format(date);

String转Date

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sDate = "2020-11-19 12:12:12";
Date date = simpleDateFormat.parse(sDate);

Timestamp和String

Timestamp转String

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Timestamp timestamp = new Timestamp(Calendar.getInstance().getTime().getTime());
String sDate = simpleDateFormat.format(timestamp);

String转Timestamp

String sDate = "2020-11-19 12:12:12";
Timestamp timestamp = Timestamp.valueOf(sDate);

总结

今天我们将java里的常用日期时间处理的方法总结了一遍,大家可以收藏起来备用。