当前位置: 首页 > news >正文

Date/Calendar/DateFormat/LocalDate

作用说明

Date用于定义时间,提供date对象间的比较方法

Calendar(日历类),提供对时间的运算方法

DateFormat是接口,它的实现类SimpleDateFormat用来规范时间输出形式

LocalDate,在JDK1.8之后引入,方便了对时间的运算

方法介绍

Date常用方法

compareTo 比较目标值与源值的大小,目标值比源值大则返回负数,否则返回正数,用于判断

before比较目标值是否在源值之前

equals比较两时间是否相同

gettime()获取系统时间

转换方法

String转Date用DateFormat对象的parse(String str)方法

Date转Calendar用Calendar对象的setTime(Date date)方法

Calendar转Date用Calendar对象的getTime()方法

Date转String用DateFormat对象的format(Date date)方法

 public static void main(String[] args) throws ParseException {String str = "2025-08-13 16:40:30 999";DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//String转Date按照给定的格式转Date date = dateFormat.parse(str);Calendar calendar = Calendar.getInstance();//Date转calendarcalendar.setTime(date);//用calendar进行运算,天数减1calendar.add(Calendar.DATE, -1);//calendar转DateDate time = calendar.getTime();//Date转StringString newTime = dateFormat.format(time);System.out.println(newTime);}

特殊的构造Calendar

        Calendar calendar = Calendar.getInstance();//给calendar赋值用setTimecalendar.setTime(date);

用Calendar运算时间

用Calendar对象的add方法,第一个参数获时间,第二个参数在第一个参数上运算

   public static void main(String[] args) throws ParseException {String str = "2025-08-13 16:40:30 999";DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//String转DateDate date = dateFormat.parse(str);Calendar calendar = Calendar.getInstance();//Date转calendarcalendar.setTime(date);//用calendar进行运算,天数减1
//        calendar.add(Calendar.DATE, -1);//2025-08-12 16:40:30 999calendar.set(Calendar.MONTH,12);//2026-01-13 16:40:30 999//calendar转DateDate time = calendar.getTime();//Date转StringString newTime = dateFormat.format(time);System.out.println(newTime);}

SimpleDateFormat的格式要求

LocalDate/LocalDateTime

可以很快获取每一部分的时间,并很容易进行运算

    public static void main(String[] args) {//现在时间 2025-8-13 23:07:06.619358300LocalDate date = LocalDate.now();//不可变和String一样System.out.println(date);LocalDateTime date2 =LocalDateTime.now();System.out.println(date2);System.out.println(date.getMonthValue());//8System.out.println(date.minusDays(30));//-30天 2025-07-14System.out.println(date.plusDays(30));//+30天 2025-09-12}

http://www.dtcms.com/a/328984.html

相关文章:

  • 分段锁和限流的间接实现
  • Mundi.ai: AI原生GIS
  • 无障碍为什么会读取data-fileid属性,而不读取aria-label属性
  • 【Java虚拟机】JVM内存模型
  • OpenCV常见问题汇总
  • XML头部声明发送者信息的实现方法
  • k8s基本概念
  • vue3:customRef 自定义ref
  • 深度学习模型实现高效公平调度-MU-MIMO场景
  • 面试实战 问题二十九 Java 值传递与引用传递的区别详解
  • 解决Vscode每次连接ssh登入需要输入密码问题(免密登入)
  • NLP自然语言处理: FastText工具与迁移学习基础详解
  • Maven配置Docker插件推送至远程私有仓库
  • 【论文笔记】DOC: Improving Long Story Coherence With Detailed Outline Control
  • Linux应用软件编程---UI技术(frambuffer、内存映射、函数封装、打印各类图形)
  • 数据结构初阶(12)排序算法—插入排序(插入、希尔)(动图演示)
  • 【Datawhale AI 夏令营】金融文档分析检索增强生成系统的架构演变与方法论进展
  • CAN仲裁机制的原理
  • Android中获取状态栏高度
  • 用好Spring AI向量存储,全面释放AI潜能:打造高效RAG应用的加速引擎
  • Jetson NX Python环境搭建:使用APT轻松安装NumPy, scikit-learn, OpenCV
  • 【OSPP 开源之夏】Good First issue 第一步—— openEuler Embedded 计划
  • 机器学习⑤【线性回归(Linear Regression】
  • 记录RK3588的docker中启动rviz2报错
  • C++11新特性详解:从列表初始化到线程库
  • Linux系统编程Day13 -- 程序地址空间(进阶)
  • uniapp组件的开关选择器可以这个携带多参数
  • CVPR2025敲门砖丨机器人结合多模态+时空Transformer直冲高分,让你的论文不再灌水
  • docker network 与host的区别
  • Uni-app + Vue3+editor富文本编辑器完整实现指南