Java12都要出来了,你还在使用Date操作日期吗?

如果你想要用Date表示Java8的发布日期(2014年3月18日),需要创建这样的Date实例:

Date date = new Date(114, 2, 18);

要是我不告诉你这表示的是2014年3月你是不是还以为这是114年2月。

另外,对于时间的格式化类DatteForm类不是线程安全的,也就是说如果两个线程尝试使用同一个formatter解析日期,你可能会得到无法预期的结果。

使用LocalDate和LocalTime

LocalDate

该类的实例是一个不可变对象,只提供简单的日期,不含当天的时间信息,不附带任何与时区相关的信息。

以下是它的使用方法:

LocalDate date = LocalDate.of(2014, 3, 18);// 2014-03-18int yeat = date.getYear();// 2014Month month = date.getMonth();// MARCHint day = date.getDayOfMonth();// 18DayOfWeek dow = date.getDayOfWeek();// TUESDAYint len = date.getlengthOfMonth();// 31boolean leap = date.isLeapYear();// false

这个api跟我们正常的思维很相近,一眼就能看出来这表示的是哪一天。

另外获取当前日期的方法:

LocalDate date = LocalDate.now();

使用统一的get()方法:

int year = date.get(ChronoField.year);int month = date.get(ChronoField.MONTH_OF_YEAR);int day = date.get(ChronoField.DAY_OF_MONTH);

LocalTime

表示一天中的时间,可以使用LocalTime:

LocalTime time = LocalTime.of(13, 45, 20);// 12:45:20int hour = time.getHour();// 13int minute = time.getMinute();// 45int second = time.getSecond();// 20

使用字符串创建LocalDate和LocalTime

使用parse方法:

LocalDate date = LocalDate.parse("2014-03-18");LocalTime time = LocalTime.parse("13:45:20");

这个创建方法是不是怎么看怎么顺眼。

合并日期和时间LocalDateTime

LocalDateTime是LocalDate和LocalTime的合体,同时表示了日期和时间,但是不带有时区信息。

// 2014-03-18T13:45:20LocalDateTime dt1 = LocalDateTime.of(2014, Month.MARCH, 18, 13, 45, 20);LocalDateTime dt2 = LocalDateTime.of(date, time);LocalDateTime dt3 = date.atTime(13, 45, 20);LocalDateTime dt3 = time.atDate(date);

相互转换:

LocalDate date1 = dt1.toLocalDate();LocalTime time1 = dt1.toLocalTime();

操纵、解析和格式化日期

以比较直观的方式操纵LocalDate的属性:

LocalDate date1 = LocalDate.of(2014, 3, 18);// 2014-03-18LocalDate date2 = date1.withTear(2011);// 2011-03-18LocalDate date3 = date2.withDayOfMonth(25);// 2011-03-25LocalDate date4 = date3.with(ChronoField.MONTH_OF_TEAR, 9)// 2011-09-25

以相对方式修改LocalDate的属性:

LocalDate date1 = LocalDate.of(2014, 3, 18);// 2014-03-18LocalDate date2 = date1.plusWeeks(1);// 2014-03-25LocalDate date3 = date2.minusYears(3);// 2011-03-25LocalDate date4 = date3.plus(6, ChronoUnit.MONTHS);)// 2011-09-25

日期上午下午怎么用date存_Java12都要出来了,你还在使用Date操作日期吗?相关推荐

  1. python gmtime_在Python中操作日期和时间之gmtime()方法的使用

    在Python中操作日期和时间之gmtime()方法的使用 这篇文章主要介绍了在Python中操作日期和时间之gmtime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 gm ...

  2. oracle显示上午下午,Oracle实现使用时间函数实现输出“上午好/...

    Oracle实现使用时间函数查询出'"上午好/下午好" 描述: 最近在进行报表开发的时候,碰见一个需求,困扰了很久:用户需要定制一个欢迎页,当用户上午登录时,页面提示"x ...

  3. ASP程序中调用函数Now()显示上午下午的问题

    ASP程序中,调用函数Now(),显示的时间总是形如"2009-07-12 上午 08:12:56 "这样的,总显示"上午"和"下午",解决 ...

  4. Java输出时间为12小时制,带上PM/AM 或 上午/下午

    一: 第一种方法: SimpleDateFormat df = new SimpleDateFormat("h:mm a"); String time = aa.format(ne ...

  5. 怎么将计算机工具栏时间去除,电脑时间显示怎么去掉上午下午

    电脑时间显示怎么去掉上午下午以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑时间显示怎么去掉上午下午 点开始-设定- ...

  6. 【Java】什么?你项目还在用Date表示时间?!日期类LocalDateTime的使用

    什么?你项目还在用Date表示时间?! 这都什么年代了,怎么还在用 Date来处理和表示时间! 别的先不说,我们先来看几个关于 Date用法的例子,这玩意真的好用吗? 一.我想新建一个表示" ...

  7. easy excel date 类型解析报错_9 个绝对用得上的excel日期公式,赶紧拿走!

    哈喽,大家好!关于excel中的日期问题,是很多exceler都绕不开的话题,比如计算当月的工作日天数,当前日期是一年中的第几天.第几周等等,面对这些问题,估计不少小伙伴可能都会反应不过来,想着应该用 ...

  8. 根据当前日期进行以下方面的处理: 1、取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式 如:2013年8月17日 20时30分20秒 2、根据日期的不同时间段,做问候语: 早上8:00-12

    根据当前日期进行以下方面的处理: 1.取得日期的年份.月份.天.时.分.秒,并转换成大写日期格式 如:2013年8月17日 20时30分20秒 2.根据日期的不同时间段,做问候语: 早上8:00-12 ...

  9. javascript 操作日期 测试(注意浏览器兼容问题)

      1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...

最新文章

  1. 怎么获取html的某个元素,MSHTML怎么获取一个网页元素对象
  2. 移动终端app测试点总结
  3. 【STM32】无线通信实验代码详解
  4. Win隐藏 Win10 中的3D对象、文档、音乐、图片、视频、下载、桌面7个文件夹
  5. 获取MySQL数据库表结构的信息(字段名,字段类型,注释等)
  6. Python-csvkit:强大的CSV文件命令行工具
  7. Android-View点击事件短时间重复点击的过滤
  8. 那些年,我深爱着的PPT(一)
  9. 前端学习(1637):前端系列实战课程之调试问题和规范
  10. epoll 性能分析(解决占用CPU 过高问题)2
  11. CI -持续集成及相关概念
  12. php dat文件,window_Win7系统怎么打开Dat文件 Win7系统打开Dat文件的方法,  在电脑中的Dat文件是很常 - phpStudy...
  13. paip.c++ 宏的展开调试.
  14. LumaQQ安装过程详解(转)
  15. 科三——细则以及扣分点
  16. 【Java基础】Lambda表达式的使用
  17. 但行好事 莫问前程(四月)
  18. codingdojo kata 之fizzbuzz
  19. 门禁系统布线的十点注意事项
  20. 预约挂号后患者实际就诊情况的数据分析

热门文章

  1. hibernate 执行存储过程 方法
  2. 实验二+018+李滨
  3. Support Vector Machine (3) : 再谈泛化误差(Generalization Error)
  4. 通过jQuery.support看javascript中的兼容性问题
  5. 一个简单demo通过em实现‘响应式设计、em、文字图标svg’
  6. 制作全功能系统维护U盘 PE Linux BT3 DOS
  7. 什么是最适合云数据库的架构设计?
  8. SQLMETAL :Linq对象生成
  9. Linux的nfs文件服务
  10. Solidworks如何在自定义的基准面上创建3D草图