zoukankan      html  css  js  c++  java
  • java-Date-DateFormat-Calendar

    例:

    package cn.itcast.demo04;

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

    public class DateTest {
    public static void main(String[] args) throws Exception {
    function_1();
    }
    /*
    * 闰年计算
    * 2000 3000
    * 高级的算法: 日历设置到指定年份的3月1日,add向前偏移1天,获取天数,29闰年
    */
    public static void function_1(){
    Calendar c = Calendar.getInstance();
    //将日历,设置到指定年的3月1日
    c.set(2088, 2, 1);
    //日历add方法,向前偏移1天
    c.add(Calendar.DAY_OF_MONTH, -1);
    //get方法获取天数
    int day = c.get(Calendar.DAY_OF_MONTH);
    System.out.println(day);
    }

    /*
    * 计算活了多少天
    * 生日 今天的日期
    * 两个日期变成毫秒值,减法
    */
    public static void function() throws Exception {
    System.out.println("请输入出生日期 格式 YYYY-MM-dd");
    //获取出生日期,键盘输入
    String birthdayString = new Scanner(System.in).next();
    //将字符串日期,转成Date对象
    //创建SimpleDateFormat对象,写日期模式
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    //调用方法parse,字符串转成日期对象
    Date birthdayDate = sdf.parse(birthdayString);

    //获取今天的日期对象
    Date todayDate = new Date();

    //将两个日期转成毫秒值,Date类的方法getTime
    long birthdaySecond = birthdayDate.getTime();
    long todaySecond = todayDate.getTime();
    long secone = todaySecond-birthdaySecond;

    if(secone < 0){
    System.out.println("还没出生呢");
    }
    else{
    System.out.println(secone/1000/60/60/24);
    }

    }
    }

    求出今天距离2020年1月1日相差几天

    思路:

    1.获取当前时间对应的天数

             2.获取2020年1月1日对应的天数

             3.两个时间相减(2020年1月1日的天数 –当前时间天数)

    代码实现:

    public static void main(String[] args){

        Calendar my = Calendar.getInstance();

        Calendar c = Calendar.getInstance();

        //设置年月日 2020-01-01

        my.set(Calendar.YEAR, 2020);

        my.set(Calendar.MONTH, 0);

        my.set(Calendar.DATE, 1);

        //获取时间中的天数

        int day = c.get(Calendar.DATE);

        int myDay = my.get(Calendar.DATE);

        System.out.println(myDay - day);

    }

    总结

    1.1      知识点总结

    l  正则表达式:用来定义匹配规则,匹配一系列符合某个句法规则的字符串。

    正则表达式的匹配规则

    请参见1.2 正则表达式的匹配规则

    正则表达式的常用方法:

    public boolean matches(String regex) //判断字符串是否匹配给定的规则

    public String[] split(String regex)    //根据给定正则表达式的匹配规则,拆分此字符串

    public String replaceAll(String regex,String replacement)   //将符合规则的字符串内容,全部替换为新字符串

     

    l  Date: 日期/时间类

    构造方法:

    public Date()// 系统当前日期时间

    public Date(long date) 得到一个1970年1月1日 0点这个时间基础上,加上参数date 毫秒值对应的日期时间

        方法:

        public long getTime() 获取日期所对应的毫秒值

     

    l  DateFormat:是日期/时间格式化子类的抽象类, 使用其子类SimpleDateFormat 实例化

    构造方法:

    public SimpleDateFormat() 默认的格式化操作

    public SimpleDateFormat(String pattern) 按照指定的格式,进行日期格式化

                                         日期和时间模式

                                         y  年 

                                         M  年中的月份 

                                         d  月份中的天数

                                         H  一天中的小时数(0-23)

                                         m  小时中的分钟数

                                         s  分钟中的秒数

                                         S  毫秒数

    方法:

                                public final String format(Date date) 把日期 格式化成字符串

                                public Date parse(String source) 把日期字符串 转换成 日期对象

    l  Calendar:日历类,可获取日期中指定字段的值

    方法:

                                public static Calendar getInstance() //获取日期对象

    public int get(int field)     //获取时间字段值

    public void add(int field,int amount)       //指定字段增加某值

    public final void set(int field,int value)//设置指定字段的值

    public final Date getTime()      //获取该日历对象转成的日期对象

  • 相关阅读:
    php算法之选择排序
    php算法之插入排序
    五分钟读懂UML类图
    ZC_知识点
    JNI_C#
    JNI_Z
    20160419__第1课_第6课
    Hibernate异常_01
    ZC_注意点
    ZC_知识点
  • 原文地址:https://www.cnblogs.com/zimo-bwl1029-s/p/9194719.html
Copyright © 2011-2022 走看看