java 日期格式处理笔记

时间格式操作

实体类中时间转换

  • @JsonFormat

  • 作用

    • 序列化时间 后端查出来的数据格式化后返给前端
  • 参数

    pattern:是你需要转换的时间日期的格式

    timezone:是时间设置为东八区,避免时间在转换中有误差 GMT+8 上海时区

    shape = JsonFormat.Shape.STRING, 序列化后的格式

  • 例和导包

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
     private Date createTime;    //创建时间
    
    <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-databind</artifactId>
     <version>2.9.2</version>
    </dependency>
    
  • @DateTimeForMat

    • 作用

      入参格式化 string 转datetime

    • 参数

      pattern:是你需要转换的时间日期的格式

	/**
     * 最后工作日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date lastWorkTime;

SimpleDateFormat

  • 作用
    • 主要是时间格式化处理 成想要的格式
 		Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd 			HH:mm:ss");
        //时间 按格式转字符串
        String format = simpleDateFormat.format(date); // 2022-03-08 17:24:25
        System.out.println(format);
        //字符串格式转时间格式
        String time1 = "2022-03-08";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        java.util.Date time=null;
        try {
            time= sdf.parse(time1);
            System.out.println(time);//Tue Mar 08 00:00:00 CST 2022
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

Calendar类 日历

  • 创建对象

     	//创建对象
         Calendar c = Calendar.getInstance();//默认是当前日期 年月日获取都是当 			前时间
         //创建一个指定日期的Canlendar对象
         c.set(2022,3,9);
         int i = c.get(Calendar.MONTH); //获取月份
         System.out.println(i); //3
    
  • **Calendar类对象字段类型 —用来方便获取当前值 **

    • Calendar类中用一下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想
常量描述
Calendar.YEAR年份
Calendar.MONTH月份
Calendar.DATE日期
Calendar.DAY_OF_MONTH日期,和上面的字段意义完全相同
Calendar.HOUR12小时制的小时
Calendar.HOUR_OF_DAY24小时制的小时
Calendar.MINUTE分钟
Calendar.SECOND
Calendar.DAY_OF_WEEK星期几
  • get方法

       //创建对象
         Calendar c = Calendar.getInstance(); //默认是当前日期 年月日获取都是当            前时间
         int yeay= c.get(Calendar.YEAR); //获取年
         int month = c.get(Calendar.MONTH); //获取月份
         int date = c.get(Calendar.DATE); //获取日
         int ofDay = c.get(Calendar.HOUR_OF_DAY); //获取小时
         int minute = c.get(Calendar.MINUTE); //获得分钟
         int second = c.get(Calendar.SECOND); //获取秒
         // 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星           期二,以此类推)
         int day = c.get(Calendar.DAY_OF_WEEK);
    
  • set方法

    		//创建对象
         Calendar c = Calendar.getInstance(); //默认是当前日期 年月日获取都是当			前时间
         c.set(2022,3,9);// 设置年月日
         //也可以单独设置
         //把 c对象代表的日期设置为10号,
         c.set(Calendar.DATE,10);  //设置日
         c.set(Calendar.YEAR,2008); //设置年
    
  • add方法

    		//创建对象
         Calendar c = Calendar.getInstance(); //默认是当前日期 年月日获取都是当         前时间 2022-3-9
        // 把c对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新			计算
         c.add(Calendar.DATE,10);
         int i = c.get(Calendar.DATE); //19
         c.add(Calendar.DATE,-10); // 9
         int i1 = c.get(Calendar.DATE); //19
    

获取当前时间的几种方法

1. date

通过Date类来获取当前时间,比较常用。需要使用Java.util.Date类,速度一般

   		 Date day = new Date();
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(day);// Fri Apr 29 09:38:31 CST 2022
        System.out.println(sdf.format(day));//2022-04-29
2.System 系统

通过System类中的currentTimeMillis方法来获取当前时间,无需导入类,速度最快

	SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");

      System.out.println(System.currentTimeMillis());//1651196311760
      System.out.println(sdf.format(System.currentTimeMillis()));//2022-04-29
3.通过Calendar类来获取当前时间

上面有写到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值