0
点赞
收藏
分享

微信扫一扫

java日期 个人笔记

Villagers 2022-02-26 阅读 68
java

日期Date

时间原点,其对应的日期是北京时间 1970年1月1日 8点0分0秒

所有的日期,都是以为这个0点为基准,每过一毫秒,就+1。

不带参数的Date()是初始化为现在的系统时间

getTime() 得到距离1970.1.1 08:00:00:000 的毫秒数 (可读性差)

DateFormat类

是一个抽象类,可以通过 该类中的static方法 getDateInstance() 来得到实例对象

还有getDateTimeInstance()来得到时间日期对象

其中format(Date对象)方法就是格式化日期

getDateInstance(style,locale)

var i=DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));设置格式以便中国的阅读方式

但这还是系统自带的默认的,如果你想要格式化为你自己想要的 格式的话要用到DateFormat的子类 SimpleDateFormat

SimpleDateFormat

在实际的开发中常用SimpleDateFormat将String转换为Date

日期格式化模板标记

y年 M月 d天 H小时 m分钟 s秒 SSS毫秒

其实这里 的y啊m之类的个数只是 规定了 对应的数字个数

如果 y 的数量大于年份的数字数量::yyyyy 的年份是2022年的话 那么 就是02022年会 添加0补齐

如果 y 的数量小于年份的数字数量::y的年份是2022年的话 那么就还是2022年不变

日期转字符串

SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
    Date d= new Date();
    String str = sdf.format(d);
    System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
    SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
    Date d1= new Date();
    String str1 = sdf1.format(d1);
    System.out.println("当前时间通过 yyyy-MM-dd 格式化后的输出: "+str1);
 也可以这样  String format="yyyy/MM/dd HH:mm:ss";
    Date d=new Date();
    System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+format.formatted(d));  
      字符串也带有一个方法将Data格式输出

字符串转日期

    String str = "2016/1/5 12:12:12";
    SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );  
     Date d = sdf.parse(str);

日历Calendar

采用单例模式获取日历对象Calendar.getInstance();

x.after(y) 比较x是否在y之后

x.before(y) 比较x是否在y之前

注意 这里的x和y 可以为Date或Calendar类,但只能相同的类的对象比较

通过日历对象得到日期对象 Date d = c.getTime();

    // 下个月的今天
    c.setTime(now);
    c.add(Calendar.MONTH, 1);

    // 去年的今天
    c.setTime(now);
    c.add(Calendar.YEAR, -1);
    
    // 上个月的第三天
    c.setTime(now);
    c.add(Calendar.MONTH, -1);
    c.set(Calendar.DATE, 3);
举报

相关推荐

Java个人笔记

JAVA个人笔记

个人笔记-java项目

java Format相关 个人笔记

个人JAVA学习笔记总结(2)

java基础笔记08-String、Array、日期

A*算法个人笔记

个人笔记-selenium

0 条评论