zoukankan      html  css  js  c++  java
  • java中的日期处理

     1 package cn.learn;
     2 
     3 import java.text.ParseException;
     4 import java.text.SimpleDateFormat;
     5 import java.util.Calendar;
     6 import java.util.Date;
     7 /*
     8 Date:精确到毫秒,Date()获取当前的毫秒值,是于格林时间的差值
     9 java.util.Date
    10 
    11 日期转换:
    12 时间原点:1970年1月1日00:00:00(英国格林威治时间)
    13 中国东八区再增加八小时
    14 1天等于86400s
    15  */
    16 public class DateApi {
    17     public static void main(String[] args) throws ParseException {
    18 
    19         //计算当前时间毫秒值,是一个与时间原点的毫秒差值,long型
    20         System.out.println(System.currentTimeMillis()); //1567842049596
    21         System.out.println(System.currentTimeMillis()/(86400*1000)/365); //49
    22         System.out.println(new Date().getTime()); //1567842049596
    23 
    24         //Date类的无参构造方法,获取系统当前时期时间
    25         System.out.println(new Date());  //Sat Sep 07 15:35:39 CST 2019
    26 
    27         //Date类带参数的构造方法new Date(long 毫秒值)
    28         System.out.println(new Date(System.currentTimeMillis()));//Sat Sep 07 15:35:39 CST 2019
    29 
    30         //Date类的格式化,DateFormat在java.text.DateFormat
    31         //功能:1.解析 2.格式化
    32         /*
    33         SimpleDateFormat的两大方法
    34         1.String format(Date date) -按照指定的格式,把Date日期格式化为符合模式的字符串
    35         2.Date parse(String source) -把符合模式的字符串,解析为Date日期
    36         注:parse声明了一个异常方法,如果不符合构造模式,就会抛出异常
    37 
    38         DateFormat是一个抽象类,需要继承重写抽象方法
    39         java已有SimpleDateFormat继承了DateFormat
    40 
    41          */
    42 
    43         //把日期格式化为文本
    44         SimpleDateFormat std = new SimpleDateFormat();
    45         Date date= new Date();
    46         System.out.println(std.format(date));//默认为2019/9/7 下午4:08
    47         //格式化时format(也可以是毫秒数)
    48         System.out.println(new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss").
    49                 format(new Date()));  //2019-09-07,16:04:29
    50 
    51         //解析方法parse必须和new时的pattern格式一样,返回一个Date格式,
    52         //会抛出一个解析异常,"-"
    53         std.parse("2018-02-03,10:00:02");
    54 
    55     }
    56 
    57 }
     1 package cn.learn;
     2 /*
     3 Calendar为一个抽象类
     4 里面有含有很多操作日历字段的方法,其中有一个静态方法getInstance,该方法返回了Calendar的子类对象
     5 常用方法:
     6 1.public int get(int field); -返回给定日历字段值
     7 2.public void set(int field,int value) -把给定的字段,设置日历值
     8 3.public abstract void add(int field,int amount); -根据日历的规则,为给定的日历字段添加或减去指定的时间量
     9 field 代表封装在Calendar中的静态常量,例如YEAR代表年,实际上是集合元素的索引值
    10 
    11  */
    12 
    13 import java.util.Calendar;
    14 import java.util.Date;
    15 
    16 import static java.util.Calendar.*;
    17 
    18 public class CalendarApi {
    19     public static void main(String[] args) {
    20         Calendar today = Calendar.getInstance();  //多态
    21         System.out.println(today);   //today的所有字段值,含日历的各种信息
    22         System.out.println(today.getTime());  //等同于new Date();,返回的为Date对象,把日历对象转换了日期对象
    23         System.out.println(new Date());  //实际是毫秒值
    24 
    25         /*
    26         获取年月日,没有下面好用
    27          System.out.println(new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss").
    28                         format(new Date()));  //2019-09-07,16:04:29
    29          */
    30         //拆分出来好计算差值值,注意的有月份少1,日少一日(从0开始),时间是12进制
    31         System.out.println(today.get(YEAR)+"年"+(today.get(MONTH)+1)+"月"
    32                    +(today.get(DAY_OF_MONTH)+1)+"日 "+(today.get(HOUR)+12)+"时"
    33                    +today.get(MINUTE)+"分"+today.get(SECOND)+"秒");
    34 
    35         //设置时间,计算差值
    36         Calendar oldDay = Calendar.getInstance();
    37         oldDay.set(Calendar.MONTH,2);
    38         System.out.println(today.get(MONTH)-oldDay.get(MONTH)+1);  //8-2+1=7
    39         //同时设置年月日,set方法重载
    40         oldDay.set(2017,8,1);
    41         System.out.println(oldDay.get(MONTH));  //8
    42         System.out.println(today.get(MONTH)-oldDay.get(MONTH));  //8-8=0
    43 
    44         /*
    45              public abstract void add(int field,int amount); -根据日历的规则
    46              为给定的日历字段添加或减去指定的时间量
    47          */
    48         today.add(YEAR,5);
    49         System.out.println(today.get(YEAR)); //2024
    50 
    51 
    52     }
    53 }
    54 //Date可用来计算天数差,Calendar可用来计算年数差,但Calendar生成的对象也有getTime(),
    55 // 格式化,解释输出,Date好用
  • 相关阅读:
    提高自己应用性能的总结架构篇
    iOS 开发调试技巧
    iOS (UIButton封装)仿糯米首页缩放“按钮”效果
    计算机网络中的TCP/UDP协议到底是怎么回事(二)
    计算机网络中的TCP/UDP协议到底是怎么回事(一)
    iOS一分钟学会环形进度条
    View Controller 视图管理总结
    iOS-自定义导航栏后侧滑返回功能失效
    iOS缓存框架-PINCache解读
    YYCache 设计思路
  • 原文地址:https://www.cnblogs.com/huxiaobai/p/11483521.html
Copyright © 2011-2022 走看看