欢迎光临散文网 会员登陆 & 注册

java Date类和DateFormat类

2022-07-13 19:51 作者:虚云幻仙  | 我要投稿

/**
* 测试Date类
* DateFormat抽象类  SimpleDateFormat类 用于日期和字符串之间转换
*/

public class TestDate {
   public static void main(String[] args) {
       long nowTime = System.currentTimeMillis();
       //返回当前时间 单位毫秒 从1970-01-01 0:00开始计算的总毫秒值 在1970以后为正数 以前为负数
       //java.lang.System类静态方法

       long max = Long.MAX_VALUE;
       //包装类Long中存放常量 MAX MIN
       long range = max/(1000L*3600*24*365);
       //1000毫秒 加L转为long类型防止int溢出
       System.out.println(range+"的结果为292471208");
       //范围为正负2.9亿年
       Date d1 = new Date();
       System.out.println(d1+"的结果为Mon Jul 11 20:52:25 CST 2022");
       //无参new Date()返回当前时间的Date对象 d1.fastTime存储当前时间System.currentTimeMillis()的long值
       System.out.println(d1.getTime()+"的结果为1657544258209");
       //.getTime()返回fastTime
       System.out.println(d1.getTime()/(1000L*3600*24*365)+"的结果为52 即从1970至今(2022)52年");
       Date d2 = new Date(1000L*3600*24*365*52);
       //传参long 毫秒
       System.out.println(d2+"的结果为Sun Dec 19 08:00:00 CST 2021 有闰年所以有误差");

       SimpleDateFormat df = new SimpleDateFormat();
       //format格式化 ()中的参数为字符串 通过输入的字符串设定日期的匹配格式和输出格式 无参默认格式为"yy-MM-dd 上/下午hh:mm" DateFormat为抽象类 可以用做引用类型 构造器需要用SimpleDateFormat()
       System.out.println(df.format(d1)+"的结果为22-7-11 下午9:38");
       //yy22 MM7 dd11 下午 hh9 :mm38  .format()将Date对象转换为字符串String 按照df设定好的格式
       try {
           System.out.println(df.parse("90-12-20 上午11:30"));
           //parse解析操作要求处理ParseException try/catch和throws二选一
           //结果为Thu Dec 20 11:30:00 CST 1990
           //.parse()将符合设定格式的字符串转换为Date对象 print的结果为Date对象.toString 所以格式和设定的格式不同
           //这里90转换为1990

       } catch (ParseException e) {
           throw new RuntimeException(e);
       }

       DateFormat df2 = new SimpleDateFormat("年份:yyyy 月份大写的:MM 日:dd 小时0-23:HH 分钟:mm 秒:ss 年里的第几周:w 年里的第几天:D 星期几大写的:EEE三个字符就显示单词的前三位");
       try {
           Date d4 = df2.parse("年份:2022 月份大写的:07 日:11 小时0-23:22 分钟:04 秒:25 年里的第几周:29 年里的第几天:192 星期几大写的:星期一三个字符就显示单词的前三位"/*中文环境下显示为汉字星期几*/);
           System.out.println(d4+"的结果为Mon Jul 11 22:04:25 CST 2022");
           //格式中的EEE在中文环境下变成了 星期几 格式中的字母是固定含义的 比如年份只能用y表示 不同在于 yy代表末尾两位数 yyyy代表四位年份 但第几周的w一个就对应了29 第几天的D一个就对应了192
       } catch (ParseException e) {
           throw new RuntimeException(e);
       }
   }
}

java Date类和DateFormat类的评论 (共 条)

分享到微博请遵守国家法律