zoukankan      html  css  js  c++  java
  • 日期和时间

    处理日期时间,主流三个类,Date,DateFormat,SimpleDateFormat,Calendar。SimpleDateFormat继承于DateFormat,DateFormat继承于Format。

    DateFormat和SimpleDateFormat具备日期 -> 文本,文本-> 日期的功能。Date中好多方法不用了。

    常用案例场景

    //把字符串转化为Date
    String str="2020/04/18 23:59:59";
    DateFormat df =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Date date =df.parse(str);
    System.out.println(date);输出:Sat Apr 18 23:59:59 CST 2020

    再把这个Date类型转化为想要的格式

    String str2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);

    System.out.println(str2);输出:2020-04-18 23:59:59

    //把Date转化为字符串 getDateTimeInstance()可以设置style
    String date2=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.LONG).format(date);
    String date3=DateFormat.getDateInstance(DateFormat.FULL).format(date);
    String date1=DateFormat.getDateTimeInstance().format(date);
    System.out.println(date1);

    //把Long转化为Date类型字符串

    File file =new File("D:\批处理.bat");
    Long lastUpdateTime=file.lastModified();
    Date date =new Date(lastUpdateTime);
    String df =DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date);
    System.out.println(df);输出:2016年4月20日 下午11时50分58秒

    //用Calendar获取当前日期
    Calendar c=Calendar.getInstance();
    System.out.println(c.getTime());

    Calendar 类是一个抽象类,它为特定时间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。对应操作 YEAR、MONTH、DAY_OF_MONTH、HOUR 等方法在Date中好多都过期了,现在一般都是用Calendar。

    1.初始值

    代码如下,值得指出的是由于我们的时区设置是GMT+8,所以打印格林威治时间得到的是1970-01-01 08:00:00.
    Calendar cal = Calendar.getInstance();//得到当前时间
    cal.setTimeInMillis(0);//转换成格林威治时间
    

    2.获取值  

    cal.get(Calendar.YEAR);//年
    cal.get(Calendar.MONTH) + 1;//月(必须要+1)
    cal.get(Calendar.DATE);//日
    cal.get(Calendar.HOUR_OF_DAY);//时
    cal.get(Calendar.MINUTE);//分
    cal.get(Calendar.SECOND);//秒
    cal.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情况下,周日是1,剩下自己推算)
    

    4、设置值

    cal.set(2013, 5, 4, 13, 44, 51);//年月日时分秒(月份0代表1月)
    cal.set(Calendar.YEAR, 2014);//年
    cal.set(Calendar.MONTH, 7);//月(月份0代表1月)
    cal.set(Calendar.DATE, 11);//日
    cal.set(Calendar.HOUR_OF_DAY, 15);//时
    cal.set(Calendar.MINUTE, 33);//分
    cal.set(Calendar.SECOND, 32);//秒
    

    5. 运算值

    cal.add(Calendar.YEAR, 1);//年
    cal.add(Calendar.MONTH, 1);//月
    cal.add(Calendar.DATE, 1);//日
    cal.add(Calendar.HOUR_OF_DAY, -1);//时
    cal.add(Calendar.MINUTE, 1);//分
    cal.add(Calendar.SECOND, 1);//秒
    cal.add(Calendar.DATE, 7);//周  

    注意:两个时间要相减,必须转化成Long类型的毫秒相减,可以用Date中的public long getTime();返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。进行相减。

    
    
    
    

      

      

      

  • 相关阅读:
    LeetCode Longest Uncommon Subsequence II
    Leetcode Longest Uncommon Subsequence I
    LeetCode 557. Reverse Words in a String III
    LeetCode 394. Decode String
    LeetCode 419. Battleships in a Board
    LeetCode 366. Find Leaves of Binary Tree
    LeetCode 408. Valid Word Abbreviation
    LeetCode 532. K-diff Pairs in an Array
    LeetCode Minimum Absolute Difference in BST
    LeetCode 414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/xiaohu666/p/12727491.html
Copyright © 2011-2022 走看看