LocalDateTime类获取当日00:00与当月第一天
LocalDateTime类获取当日00:00与当月第一天
- LocalDateTime类
- 获取当日00:00
- 获取当月第一天
LocalDateTime类
Java8以前, Date、Calendar,DateFormat 等组成的「传统时间日期 API」,但是传统的处理接口设计并不是很友好,不易使用。终于,Java 8 借鉴第三方优秀开源库 Joda-time,重新设计了一套 API。这就是java.time包。
在java8中,java.time包下主要包含下面几个主要的类:
Instant:时间戳
Duration:持续时间,时间差
LocalDate:只包含日期,比如:2016-10-20
LocalTime:只包含时间,比如:23:12:10
LocalDateTime:包含日期和时间,比如:2016-10-20 23:14:21
Period:时间段
ZoneOffset:时区偏移量,比如:+8:00
ZonedDateTime:带时区的时间
Clock:时钟,比如获取目前美国纽约的时间
LocalDateTime类里包含了LocalDate与LocalTime类
/*** The date part.*/private final LocalDate date;/*** The time part.*/private final LocalTime time;
获取当日00:00
LocalDateTime today_start = LocalDateTime.of(LocalDate.now(),LocalTime.MIN);
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(today_start));
上述代码成功获取了当日的00:00,其中重点需要了解的是LocalDateTime的of方法
在IDEA里我们可以看到有七种声明,既可以利用LocalDate与LocalTime来初始化时间,也可以用自定义时间
如LocalDateTime.of(2020, 01, 01, 00, 00, 00);
我们选择的是利用LocalDate与LocalTime来初始化。
LocalDate内的静态方法now()的定义如下
public static LocalDate now() {return now(Clock.systemDefaultZone());}
用LocalDate.now()就可以返回默认区域中最佳可用系统时钟的时钟。
而LocalTime的成员变量MIN的定义如下
/*** The minimum supported {@code LocalTime}, '00:00'.* This is the time of midnight at the start of the day.*/public static final LocalTime MIN;/*** The maximum supported {@code LocalTime}, '23:59:59.999999999'.* This is the time just before midnight at the end of the day.*/public static final LocalTime MAX;static {for (int i = 0; i < HOURS.length; i++) {HOURS[i] = new LocalTime(i, 0, 0, 0);}MIDNIGHT = HOURS[0];NOON = HOURS[12];MIN = HOURS[0];MAX = new LocalTime(23, 59, 59, 999_999_999);}
在LocalTime内,MIN与MAX被初始化为00:00与23:59:59.99999999。
获取当月第一天
LocalDate thisMonth = LocalDate.now();LocalDate firstDayThisMonth = LocalDate.now().withDayOfMonth(1);DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");System.out.println(df.format(firstDayThisMonth));
那么这段代码内最核心的就是.withDayOfMonth(1)这个方法了,下面我们来看看LocalDate内关于它的声明。
/*** Returns a copy of this {@code LocalDate} with the day-of-month altered.* <p>* If the resulting date is invalid, an exception is thrown.* <p>* This instance is immutable and unaffected by this method call.** @param dayOfMonth the day-of-month to set in the result, from 1 to 28-31* @return a {@code LocalDate} based on this date with the requested day, not null* @throws DateTimeException if the day-of-month value is invalid,* or if the day-of-month is invalid for the month-year*/public LocalDate withDayOfMonth(int dayOfMonth) {if (this.day == dayOfMonth) {return this;}return of(year, month, dayOfMonth);}
该方法的返回值是一个用dayOfMonth来替换原本day的一个副本。
于是得到当月第一天的方法如下:首先我们利用now()获取当前时钟的year与month,最后用我们传进去的dayOfMonth来替换当前的day。
LocalDateTime类获取当日00:00与当月第一天相关推荐
- LocalDateTime获取当日00:00、结束时间23.59与当月第一天00.00,月末最后一天23.59
LocalDateTime获取当日00:00.结束时间23.59与当月第一天00.00,月末最后一天23.59 localDdate格式为字符串 //localDateTime格式为字符串DateTi ...
- MySQL 常见时间获取整理(当日、当月、当年、上一日、上一月、上一年,当月第一天,当年第一天等等)
MySQL 常见时间获取整理(当日.当月.当年.上一日.上一月.上一年,当月第一天,当年第一天等等) 当前时间 SELECT now(); //当前时间,格式2020-09-02 16:00:02 S ...
- Java 8 获取某天最大(23:59:59)最小(00:00:00)时间
Java 8 中获取某一天最大时间和最小时间如下: import java.text.SimpleDateFormat; import java.time.Instant; import java.t ...
- Java获取当天或者明天等零点时间(00:00:00)0时0分0秒的方法
SimpleDateFormat sdfYMD = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = ...
- 实现计时、时钟,实时获取当前年月日时分秒,记录时间(获取当前的时间,开始计时,计时过程相当于你的电脑时钟)0000年00月00日 00:00:00
<!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...
- Android --- 数据库存储的是正确的时间格式(2021-06-17 21:47:23)但是在获取的时候变成了(2021-06-17T13:47:23.000+00:00)
问题描述: 数据库存储的是正确的时间格式(2021-06-17 21:47:23)但是在获取的时候变成了(2021-06-17T13:47:23.000+00:00) 重点: 我们发现获取到的时间跟原 ...
- 实例:输入一个时间值s,它是距离当日午夜的秒值,计算目前的时间,时间按00:00:00格式输出
实例:输入一个时间值s,它是距离当日午夜的秒值,计算目前的时间,时间按00:00:00格式输出 代码如下: # 计算时间的程序 s = int(input("请输入秒值:")) # ...
- # c语言版:实例:输入一个时间值s,它是距离当日午夜的秒值,计算目前的时间,时间按00:00:00格式输出
c语言版:实例:输入一个时间值s,它是距离当日午夜的秒值,计算目前的时间,时间按00:00:00格式输出 前言:c语言版本 对于c语言的基础复习 对于if选择判断语句的理解 浮点型输出 提示:以下是本 ...
- 获取当日/当月的时间段——js(技能提升)
今天遇到一个需求,要展示当日/当月的表格数据,支持当日和当月时间的选择. 获取当日的时间--年月日格式 getDataString(date){var year = date.getFullYear( ...
最新文章
- 4412 GPIO读 和 ioremap控制GPIO寄存器
- Redis数据库(三)——(主从复制、哨兵模式、集群)
- ASPNET Core 2.x中的Kestrel服务器
- Entityframework Code First 系列
- hibernate环境搭建
- 数据结构与算法(四)-线性表之循环链表
- “产品助理最重要的工作是 Android 版本的设计与测试”
- Google地图接口API之Google地图 API 参考手册(七)
- 由DispatcherServlet看spring mvc请求处理过程
- 人人商城源码怎么安装MySQL_人人商城12个常见错误解决方案
- c语言不合法字符串常量,不合法的字符常量是什么
- python 调用matlab 数据类型问题
- 教师资格考试科目二 word Exele ppt 应用
- Game boy模拟器(3):GPU的时序
- 为什么你做数据分析没思路?
- matlab结构力学仿真,MATLAB在结构力学分析中应用.doc
- 青龙羊毛——酷狗音乐(教程)
- ssh mysql jsp码头船只出行及配套货柜码放管理系统的设计与实现
- 用于私网的IP地址段
- 如何成为别人嘴里的高级前端工程师?
热门文章
- Citespace使用教程2
- 【杂文】一些好玩的函数
- 双向循环链表、dancing links
- vue el-table表格数据编辑,取消编辑数据还原,批量提交编辑修改数据
- CVPR2021小目标检测:上下文和注意力机制提升小目标检测
- 使用shell遍历文件夹下的所有图片,并复制一定数量的到新建的子文件夹中
- 中国电动压缩机行业市场研究与预测报告(2023版)
- 2018吉大计算机学院复试线,2018年吉林大学考研复试分数线已公布
- 用Linux命令行获取本机外网IP地址
- Bioinformatics Armory第1题:Introduction to the Bioinformatics Armory