zoukankan      html  css  js  c++  java
  • Java日期工具类DateUtils详解(转)

    jar包 appache下的 common-lang3

    一、 对指定的日期新增年、月、周、日、小时、分钟、秒、毫秒

    public static Date addDays(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
    date = DateUtils.addDays(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));

    结果是:

    2018-01-23 11:53:49
    2018-01-24 11:53:49这里写代码片

    说明:向返回新对象日期添加若干天,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    public static Date addHours(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
    date = DateUtils.addHours(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));

    结果:

    2018-01-23 11:58:26
    2018-01-23 12:58:26

    说明:向新返回日期对象添加若干小时,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    public static Date addMinutes(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
    date = DateUtils.addMinutes(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));

    结果:

    2018-01-23 13:04:05
    2018-01-23 13:05:05

    说明:向新返回日期对象添加若干分钟,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    public static Date addSeconds(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
    date = DateUtils.addSeconds(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss"));

    结果:

    2018-01-23 13:06:42
    2018-01-23 13:06:43

    说明:向新返回日期对象添加若干秒,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    public static Date addMilliseconds(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.addMilliseconds(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:10:26:579
    2018-01-23 13:10:26:580

    说明:向新返回日期对象添加若干毫秒,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    public static Date addYears(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.addYears(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:12:44:742
    2019-01-23 13:12:44:742

    说明:向新返回日期对象添加若干年,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    public static Date addMonths(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.addMonths(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:14:13:354
    2018-02-23 13:14:13:354

    说明:向新返回日期对象添加若干年,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    public static Date addWeeks(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.addWeeks(date, 1);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:15:21:608
    2018-01-30 13:15:21:608

    说明:向新返回日期对象添加若干周,原始日期不变;
    参数:date-日期,可能为空;amount-添加的量可能为复值;
    返回值:返回一个新日期,原始日期不变;
    抛出异常:IllegalArgumentException,如果日期为null;

    二、设置日期中年、月、日、时、分、秒、毫秒值为指定的数字值

    public static Date setYears(Date date,int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.setYears(date, 2015);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:24:13:838
    2015-01-23 13:24:13:838

    说明:设置日期中年字段并返回一个新的日期对象,原始日期值不变;
    参数:date-日期,不能为null;amount-设置的值,非负值;
    返回:一个新的日期对象;
    抛出异常:IllegalArgumentException,如果日期为null或者负值;

    public static Date setMonths(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.setMonths(date, 11);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:30:28:161
    2018-12-23 13:30:28:161

    说明:设置日期中月字段并返回一个新的日期对象,原始日期值不变;
    参数:date-日期,不能为null;amount-设置的值,非负值,且值为0—11;
    返回:一个新的日期对象;
    抛出异常:IllegalArgumentException,如果日期为null或者负值;

    public static Date setDays(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.setDays(date, 11);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:33:41:587
    2018-01-11 13:33:41:587

    说明:设置日期中日字段并返回一个新的日期对象,原始日期值不变;
    参数:date-日期,不能为null;amount-设置的值,非负值,且值为0到当月最大天数;
    返回:一个新的日期对象;
    抛出异常:IllegalArgumentException,如果日期为null或者负值;

    public static Date setHours(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.setHours(date, 16);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:36:01:860
    2018-01-23 16:36:01:860

    说明:设置日期中小时字段并返回一个新的日期对象,原始日期值不变;
    参数:date-日期,不能为null;amount-设置的值,非负值,且值为0到23;
    返回:一个新的日期对象;
    抛出异常:IllegalArgumentException,如果日期为null或者负值;

    public static Date setMinutes(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.setMinutes(date, 16);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:37:28:681
    2018-01-23 13:16:28:681

    说明:设置日期中分钟字段并返回一个新的日期对象,原始日期值不变;
    参数:date-日期,不能为null;amount-设置的值,非负值,且值为0到59;
    返回:一个新的日期对象;
    抛出异常:IllegalArgumentException,如果日期为null或者负值;

    public static Date setSeconds(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.setSeconds(date, 10);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:39:19:946
    2018-01-23 13:39:10:946

    说明:设置日期中秒字段并返回一个新的日期对象,原始日期值不变;
    参数:date-日期,不能为null;amount-设置的值,非负值,且值为0到59;
    返回:一个新的日期对象;
    抛出异常:IllegalArgumentException,如果日期为null或者负值;

    public static Date setMilliseconds(Date date, int amount)
    Date date = new Date();
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));
    date = DateUtils.setMilliseconds(date, 10);
    System.out.println(DateUtil.dateToString(date, "yyyy-MM-dd HH:mm:ss:SSS"));

    结果:

    2018-01-23 13:40:38:666
    2018-01-23 13:40:38:010

    说明:设置日期中毫秒字段并返回一个新的日期对象,原始日期值不变;
    参数:date-日期,不能为null;amount-设置的值,非负值,且值为0到999;
    返回:一个新的日期对象;
    抛出异常:IllegalArgumentException,如果日期为null或者负值;

    三、检查日期是否相同

    public static boolean isSameDay(Date date1, Date date2)
    Date date1 = new Date();
    Date date2 = new Date();
    System.out.println(DateUtils.isSameDay(date1, date2));

    结果:

    true

    说明:检查两个日期对象是否同一天忽略时间(28 Mar 2002 13:45 and 28 Mar 2002 06:01 would return true. 28 Mar 2002 13:45 and 12 Mar 2002 13:45 would return false.);
    参数:date1-第一个参数,不能改变,非空;date2-第二个参数,不能改变,非空;
    返回值:true,如果两个日期在同一天;
    抛出异常:IllegalArgumentException如果有一个日期为null;

    public static boolean isSameDay(Calendar cal1, Calendar cal2)
    Calendar cal1 = Calendar.getInstance();
    Calendar cal2 = Calendar.getInstance();
    System.out.println(DateUtils.isSameDay(cal1, cal2));

    结果:

    true


    说明:检查两个日期对象是否同一天忽略时间(28 Mar 2002 13:45 and 28 Mar 2002 06:01 would return true. 28 Mar 2002 13:45 and 12 Mar 2002 13:45 would return false);
    参数:date1-第一个参数,不能改变,非空;date2-第二个参数,不能改变,非空;
    返回值:true,如果两个日期在同一天;
    抛出异常:IllegalArgumentException如果有一个日期为null;

    public static boolean isSameInstant(Date date1, Date date2)
    Date date1 = new Date();
    date1 = DateUtils.addMinutes(date1, 23);
    Date date2 = new Date();
    System.out.println(DateUtils.isSameInstant(date1, date2));

    结果:

    false

    说明:检查两个日期对象是否代表同一时刻,此方法比较两个日期精确到毫秒数;
    参数:date1-第一个参数,不能改变,非空;date2-第二个参数,不能改变,非空;
    返回值:true,如果两个日期代表相同的毫秒时刻;
    抛出异常:IllegalArgumentException如果有一个日期为null;

    public static boolean isSameInstant(Calendar cal1, Calendar cal2)
    Calendar cal1 = Calendar.getInstance();
    Date date3 = DateUtils.addHours(cal1.getTime(), 12);
    cal1.setTime(date3);
    Calendar cal2 = Calendar.getInstance();
    System.out.println(DateUtils.isSameInstant(cal1, cal2));

    结果:

    false

    说明:检查两个日期对象是否代表同一时刻,此方法比较两个日期精确到毫秒数;
    参数:date1-第一个参数,不能改变,非空;date2-第二个参数,不能改变,非空;
    返回值:true,如果两个日期代表相同的毫秒时刻;
    抛出异常:IllegalArgumentException如果有一个日期为null;

    public static boolean isSameLocalTime(Calendar cal1,Calendar cal2)
    Calendar cal1 = Calendar.getInstance();
    Calendar cal2 = Calendar.getInstance();

    System.out.println(DateUtils.isSameLocalTime(cal1, cal2));

    结果:

    true
    说明:检查两个日历对象是否表示相同的本地时间,此方法比较两个对象的字段值,另外两个日历必须为同一类型的日历;
    参数:cal1-第一个参数,不能改变,非空;cal2-第二个参数,不能改变,非空;
    返回值:true,如果两个日期代表相同的毫秒时刻;
    抛出异常:IllegalArgumentException如果有一个日期为null;

    一、日期格式化

    public static Date parseDate(String str, Locale locale,String… parsePatterns)

    说明:使用给定区域设置的默认日期格式符号,通过尝试各种不同的解析器解析一个表示日期的字符串,解析将依次尝试每个解析模式。解析只有在解析整个输入字符串时才被认为是成功的。如果没有解析模式匹配,抛出ParseException抛出,解析器将对已解析的日期冗余;
    参数:str-转换的日期,非null;parsePatterns-要使用的日期格式模式,查看SimpleDateFormat,非null;local-应该使用日期格式符号的区域设置。如果为空,系统现场应用(每parsedate(String,String…))。
    返回数据:转换后的日期对象;
    抛出异常:IllegalArgumentException-如果data字符串或者parsePatterns模式为null;ParseException-如果没有日期格式符合data字符串;

    DateUtils.parseDate("2017-12-16 15:26:56",Locale.CHINA, "yyyy-MM-dd HH:mm:ss")
    Sat Dec 16 15:26:56 CST 2017

    public static Date parseDate(String str, String… parsePatterns)

    说明:通过尝试各种不同的解析器解析一个表示日期的字符串,解析将依次尝试每个解析模式。解析只有在解析整个输入字符串时才被认为是成功的。如果没有解析模式匹配,抛出ParseException抛出。
    参数:str-转换的日期,非null;parsePatterns-要使用的日期格式模式,查看SimpleDateFormat,非null;
    返回数据:转换后的日期对象;
    抛出异常:IllegalArgumentException-如果data字符串或者parsePatterns模式为null;ParseException-如果没有日期格式符合data字符串;

    DateUtils.parseDate("2017-12-16 15:26:56", "yyyy-MM-dd HH:mm:ss")
    Sat Dec 16 15:26:56 CST 2017

    public static Date parseDateStrictly(String str, String… parsePatterns)

    说明:通过尝试各种不同的解析器解析一个表示日期的字符串,解析将依次尝试每个解析模式,解析只有在解析完整个输入字符串的时候才会被认为成功,如果没有解析模式匹配,将会抛出异常;解析器严格解析,它不允许诸如"February 942, 1996";
    参数:str-输入的日期字符串,非null;parsePatterns-日期转换的格式,非null;
    返回值:转换后的日期对象;
    抛出异常:IllegalArgumentException-如果data字符串或者parsePatterns模式为null;ParseException-如果没有日期格式符合data字符串;

    二、日期舍入

    public static Date round(Date date, int field)

    说明:舍入日期,保留大于等于指定字段的日期;例如如果你有日期28 Mar 2002 13:45:01.231,如果传入HOUR,那结果会是28 Mar 2002 14:00:00.000;如果传入的是MONTH,将会返回1 April 2002 0:00:00.000;
    参数:date-转换日期;field-舍入字段,如:Calendar.DATE、Calendar.MINUTE;
    返回值:不同的舍入日期,非null;

    ————————————————
    版权声明:本文为CSDN博主「随风yy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yaomingyang/article/details/79138466

  • 相关阅读:
    序列化
    执行mysql脚本
    MinGW-notepad++开发c/c++程序
    MySql免安装版配置方法
    Wamp 简单使用方法
    [锋利JQ]-图片提示效果
    [锋利的JQ]-超链接提示效果
    PHPcms 系统简单使用
    NC帮助文档网址
    NC的开发模型
  • 原文地址:https://www.cnblogs.com/muxi0407/p/11947562.html
Copyright © 2011-2022 走看看