我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java时间类型以及前端和数据端的传输

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java时间类型以及前端和数据端的传输

Java时间类型以及前端和数据端的传输

1. Java时间类型

  1. Date

    • Date类是一般我们用的比较多的一个类,而Date类其实不止一个包有,即有很多包的子类都有Date类,如下图所示

    在这里插入图片描述

    • 虽然sql也有一个Date类,但其实相对而言,用的更多的是util包下的Date,所以也就以util包下的Date为例

    • 构造方法

      • Date():获取当前系统的的时间

      • Date(Long millisec):获取传入的时间戳(毫秒数)的时间

        (时间戳是 1970 年 1 月 1 日(00:00:00 )至当前时间的总秒数;)

           Date date = new Date();      System.out.println(date);            Date date1 = new Date(1577808000000L);      System.out.println(date1);
    • 对于Date有几个常用的方法

      • long getTime( ):返回自1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数.

      • boolean after(Date date):两个日期的比较,如果调用的对象在传入的参数之后则返回true.

      • boolean before(Date date):两个日期的比较,如果调用的对象在传入的参数之前则返回true.

        Long timeStamp = date.getTime();System.out.println(timeStamp);boolean f = date.before(date1);boolean f1 =  date.after(date1);System.out.println(f+"=="+f1);
  2. DateFormate

    • 对于DateFormate类,一般我们最常用的就是用来格式化时间,因为这个类为抽象类,所以需要子类SimpleDateFormat来实现。

    • 比如将时间(2022-10-19-10-29)格式化为(2022-10-19/10:30)

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd/HH:mm");        String time1 = "2022-10-19-10-29";        Date date1 = sdf.parse(time1);        System.out.println(date1);
      常用的占位符y  四位数年份M  ⽉d  ⽇h  时 在上午或下午 (1~12)H  时 在⼀天中 (0~23)m  分s  秒S  毫秒
    • 同时,也可以将Date时间按照一定的顺序格式化

              Date date = new Date();      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      String dateTime = sdf.format(date);        System.out.println(dateTime);
  3. JDK8新特性

    JDK8中,提供了LocalDate,LocalTime,LocalDateTime。

    • LocalDate:只包含年月日的日期

    • LocalTime:只包含时分秒的日期

    • LocalDateTime:包含了日期和时间

    • 常用的api:

       //getYear() int 获取当前⽇期的年份 //getMonth() Month 获取当前⽇期的⽉份对象 //getMonthValue() int 获取当前⽇期是第⼏⽉ //getDayOfWeek() DayOfWeek 表示该对象表示的⽇期是星期⼏ //getDayOfMonth() int 表示该对象表示的⽇期是这个⽉第⼏天 //getDayOfYear() int 表示该对象表示的⽇期是今年第⼏天  //withYear(int year) LocalDate 修改当前对象的年份 //withMonth(int month) LocalDate 修改当前对象的⽉份 //withDayOfMonth(int dayOfMonth) LocalDate 修改当前对象在当⽉的⽇期  //plusYears(long yearsToAdd) LocalDate 当前对象增加指定的年份数 //plusMonths(long monthsToAdd) LocalDate 当前对象增加指定的⽉份数 //plusWeeks(long weeksToAdd) LocalDate 当前对象增加指定的周数 //plusDays(long daysToAdd) LocalDate 当前对象增加指定的天数  //minusYears(long yearsToSubtract) LocalDate 当前对象减去指定的年数 //minusMonths(long monthsToSubtract) LocalDate 当前对象减去注定的⽉数 //minusWeeks(long weeksToSubtract) LocalDate 当前对象减去指定的周数 //minusDays(long daysToSubtract) LocalDate 当前对象减去指定的天数  //isBefore(ChronoLocalDate other) boolean ⽐较当前对象⽇期是否在 other对象⽇期之前 //isAfter(ChronoLocalDate other) boolean ⽐较当前对象⽇期是否在 other对象⽇期之后 //isEqual(ChronoLocalDate other) boolean ⽐较两个⽇期对象是否相等
    • 同时JDK8也给它们提供给了日期格式化

      DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");      String str = dtf.format(localDateTime);        System.out.println(str+"---");
    • 以及提供了计算两个日期差

       Duration duration = Duration.between(localDateTime1 , localDateTime);          System.out.println(duration.toDays());      System.out.println(duration.toHours());

    2.数据库中的时间类型

    1. 数据库中的时间类型就简单分为DATETIME,TIME,DATE,YEAR,TIMESTAMP

      • DATE:存放日期
      • TIME:时间值或持续时间
      • DATETIME:混合日期和时间值
      • YEAR:年份值
      • TIMESTAMP:混合日期和时间值,时间戳
    2. 对于MySQL来说,date类型没有长度,如果定义表的时候给时间类型加一个长度,会报如下错误

    在这里插入图片描述

    1. 当然一般使用情况是根据业务需求进行选择不同的。比如如果想只存年份,例如一个学生的入学年份,就可以使用YEAR,如果想保存年月日,就可以用DATE,比如出生日期。

    3. 前后端时间交互

    1. 对于前后端的时间交互,一般可以使用序列化和反序列化来选择如何传值,一般向前端传值使用的是

      @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8") 年月日都显示@JsonFormat(pattern="yyyy",timezone = "GMT+8") 只显示年@JsonFormat(pattern="MM-dd",timezone = "GMT+8") 显示月日,不显示年@JsonFormat(pattern="HH:mm:ss",timezone = "GMT+8") 显示时间

      要注意的是,使用注解时需要加在实体类中,如下图所示
      在这里插入图片描述

    2. 对于前端向后端传值,可以使用

      Date min = trainRoundService.minTime(trainId);        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");        String str = sdf.format(min);

    如下图所示
    在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_44691025/article/details/127440192

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java时间类型以及前端和数据端的传输

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录