0
点赞
收藏
分享

微信扫一扫

Java系列(38)——日期处理

sullay 2022-03-30 阅读 51


本系列博客汇总在这里:Java系列_汇总


目录

  • ​​一、Date 类​​
  • ​​1、date 类的构造器​​
  • ​​2、常用方法​​
  • ​​二、日期的格式化​​
  • ​​三、日历类 Calendar​​

一、Date 类

Java系列(38)——日期处理_日期处理

1、date 类的构造器

Java系列(38)——日期处理_日期处理_02

Java系列(38)——日期处理_构造器_03

2、常用方法

Java系列(38)——日期处理_构造器_04

  1. 示例
  2. package cn.tx;

    import java.util.Date;

    public class Demo
    {
    public static void main(String[] args)
    {
    /**
    * 第一种构造器 Date() 描述:分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒。
    */
    // 创建日期的对象(需要引入util下的包)
    Date date = new Date();
    System.out.println("当前系统时间:" + date);

    /**
    * getTime() 描述:返回自1970年1月1日以来,由此 Date对象表示的00:00:00 GMT的毫秒 数 。
    */
    // 一天的毫秒数
    long ms = 24 * 60 * 60 * 1000;
    // 获得当前时间的毫秒数
    // long cms = System.currentTimeMillis();//方式一
    long cms1 = date.getTime();// 方式二
    // 获得昨天的当前时间
    // 第二种构造器
    Date date2 = new Date(cms1 - ms);
    System.out.println("昨天的当前系统时间:" + date2);
    }
    }
  3. Java系列(38)——日期处理_日期处理_05

二、日期的格式化

  1. DateFormat 下的子类 SimpleDateFormat 的构造器
    Java系列(38)——日期处理_java_06
  2. DateFormat下的方法(部分)
    Java系列(38)——日期处理_日期处理_07
    Java系列(38)——日期处理_java_08
  3. SimpleDateFormat 类里面的日期和时间模式
    Java系列(38)——日期处理_java_09
  4. 示例
  5. package cn.tx;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class Demo
    {

    public static void main(String[] args)
    {
    // 创建日期的对象
    Date date = new Date();

    /**
    * SimpleDateFormat() 描述:构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。
    */
    // 创建日期格式化的对象
    SimpleDateFormat sdf = new SimpleDateFormat();
    String str = sdf.format(date);
    System.out.println("当前时间:" + str);

    /**
    * SimpleDateFormat(String pattern) 描述:使用给定模式 SimpleDateFormat并使用默认的
    * FORMAT语言环境的默认日期格式符号。
    */
    // 自定义的格式化的对象
    // SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS");
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 常用格式
    // 把日期转换成字符串
    String str1 = sdf1.format(date);
    System.out.println("按指定格式输出的当前时间:" + str1);
    /**
    * parse(String source) 描述:从给定字符串的开始解析文本以生成日期。
    */
    // 把字符串转换成日期
    String str2 = "2017-05-23 23:14:45";
    try
    {
    // 获得指定字符串日期对象,注意:字符串的格式一定要和SimpleDateFormat中的格式要匹配
    Date date1 = sdf1.parse(str2);
    System.out.println("用户指定日期:" + date1);
    long ms = date1.getTime();
    System.out.println("用户指定日期的毫秒数:" + ms);
    } catch (ParseException e)
    {
    // TODO 自动生成的 catch 块
    System.out.println("请按格式输入!");
    }
    }
    }
  6. Java系列(38)——日期处理_java_10
    Java系列(38)——日期处理_字符串_11

三、日历类 Calendar

  1. API
    Java系列(38)——日期处理_构造器_12
  2. 获得日历类的实例。
    Java系列(38)——日期处理_构造器_13
  3. 获得以及设置日历中的字段。
    Java系列(38)——日期处理_java_14Java系列(38)——日期处理_构造器_15
  4. 更多详见API。
  5. 示例
  6. package cn.tx;

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    public class Demo
    {

    public static void main(String[] args)
    {
    /**
    * getInstance() 描述:使用默认时区和区域设置获取日历。
    */
    Calendar ca = Calendar.getInstance();
    /**
    * java.util.GregorianCalendar[time=1534827922955,
    * areFieldsSet=true,areAllFieldsSet=true,lenient=true,
    * zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai", offset=28800000,
    * dstSavings=0, useDaylight=false, transitions=19, lastRule=null],
    * firstDayOfWeek=1, minimalDaysInFirstWeek=1, ERA=1, YEAR=2018, MONTH=7,
    * WEEK_OF_YEAR=34, WEEK_OF_MONTH=4, DAY_OF_MONTH=21, DAY_OF_YEAR=233,
    * DAY_OF_WEEK=3, DAY_OF_WEEK_IN_MONTH=3, AM_PM=1, HOUR=1, HOUR_OF_DAY=13,
    * MINUTE=5,SECOND=22, MILLISECOND=955, ZONE_OFFSET=28800000, DST_OFFSET=0]
    */
    System.out.println("直接打印时间:" + ca);

    /**
    * get(int field) 描述:返回给定日历字段的值。
    */
    // 获得年
    int year = ca.get(Calendar.YEAR);
    // 获得月
    // 注意:在月的处理上需要做加一或者减一操作
    int month = ca.get(Calendar.MONTH) + 1;
    // 获得日
    int day = ca.get(Calendar.DAY_OF_MONTH);
    // 获得小时
    int hour = ca.get(Calendar.HOUR);
    // 获得分钟
    int minute = ca.get(Calendar.MINUTE);
    // 获得秒
    int second = ca.get(Calendar.SECOND);
    // 获得毫秒
    int millisecond = ca.get(Calendar.MILLISECOND);
    System.out.println("当前时间为:" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    + millisecond + "毫秒");

    /**
    * set(int field, int value) 描述:将给定的日历字段设置为给定的值。
    */

    // 设置日历
    ca.set(Calendar.YEAR, 1111);
    // 注意:在月的处理上需要做加一或者减一操作
    ca.set(Calendar.MONTH, 1 - 1);
    ca.set(Calendar.DAY_OF_MONTH, 11);
    ca.set(Calendar.HOUR, 11);
    ca.set(Calendar.MINUTE, 11);
    ca.set(Calendar.SECOND, 11);
    ca.set(Calendar.MILLISECOND, 11);
    System.out.println("设置后直接打印的时间:" + ca);

    // 获得日历相关的毫秒数
    long tm = ca.getTimeInMillis();
    Date date = new Date(tm);

    SimpleDateFormat spf = new SimpleDateFormat("格式化后的时间格式:yyyy-MM-dd");
    String str = spf.format(date);
    System.out.println(str);

    }
    }
  7. Java系列(38)——日期处理_字符串_16

如有错误,欢迎指正!



举报

相关推荐

0 条评论