环境:java version "13.0.1"。

创建一个DateUtils类,提供三个常用方法:

  • String 转换 LocalDateTime的方法。

  • 获取LocalDateTime获取 年月日时分秒。

  • 两个时间的间隔毫秒数,常用于判断日期大小。

import org.springframework.util.StringUtils;

import java.text.DateFormat;
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date; public class DateUtils { private static DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS"); public static void getTimeByDate() {
Date date = new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date));
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println(df3.format(date));
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)
System.out.println(df4.format(date));
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println(df5.format(date));
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
System.out.println(df6.format(date));
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println(df7.format(date));
} public static void getTimeByCalendar() {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);//获取年份
int month = cal.get(Calendar.MONTH);//获取月份
int day = cal.get(Calendar.DATE);//获取日
int hour = cal.get(Calendar.HOUR);//小时
int minute = cal.get(Calendar.MINUTE);//分
int second = cal.get(Calendar.SECOND);//秒
int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
System.out.println("现在的时间是:公元" + year + "年" + month + "月" + day + "日," + hour + "时" + minute + "分" + second + "秒, 一周的第几天:" + WeekOfYear);
} /**
* 获取指定时间的年月日等
* @param localDateTime 指定时间
*/
public static void getTimeByGivenLocalDateTime(LocalDateTime localDateTime) {
if (null == localDateTime) {
localDateTime = LocalDateTime.now();
}
int dayOfYear = localDateTime.getDayOfYear();
int dayOfMonth = localDateTime.getDayOfMonth();
DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
System.out.println("今天是" + localDateTime + "\n"
+ "本年当中第" + dayOfYear + "天" + "\n"
+ "本月当中第" + dayOfMonth + "天" + "\n"
+ "本周中星期" + dayOfWeek.getValue() + "-即" + dayOfWeek + "\n"); //获取指定时间的年月日时分秒
int year = localDateTime.getYear();
Month month = localDateTime.getMonth();
int day = localDateTime.getDayOfMonth();
int hour = localDateTime.getHour();
int minute = localDateTime.getMinute();
int second = localDateTime.getSecond();
System.out.println("今天是" + localDateTime + "\n"
+ "年 : " + year + "\n"
+ "月 : " + month.getValue() + "-即 " + month + "\n"
+ "日 : " + day + "\n"
+ "时 : " + hour + "\n"
+ "分 : " + minute + "\n"
+ "秒 : " + second + "\n"
);
}
/**
* String 转换 LocalDateTime
* @param dateStr
* @return
*/
public static LocalDateTime string2Time(String dateStr) {
if (StringUtils.isEmpty(dateStr)) {
return null;
}
LocalDateTime time = LocalDateTime.parse(dateStr, fmt);
System.out.println("time:" + time);
return time;
} /**
* 求时间间隔,返回值大于零说明结束时间晚于开始时间
* @param beginTime 开始时间
* @param endTime 结束时间
* @return 毫秒,等于endTime 减去 beginTime后的毫秒数
*/
public static Long between(LocalDateTime beginTime, LocalDateTime endTime) {
Duration duration = Duration.between(beginTime, endTime);
return duration.toMillis();
} public static void main(String[] args) {
getTimeByDate();
System.out.println("********getTimeByCalendar********************");
getTimeByCalendar();
System.out.println("********getTimeByGivenLocalDateTime****************");
String str = "2021-10-09 15:32:06:777";
LocalDateTime ldt = string2Time(str);
getTimeByGivenLocalDateTime(ldt);
System.out.println("********between****************");
str = "2021-10-09 17:32:06:777";
LocalDateTime endTime = string2Time(str);
System.out.println(between(ldt, endTime));
} }

测试结果:

2021年10月10日
2021年10月10日 下午12:06:02
下午12:06:02
2021年10月10日星期日 中国标准时间 下午12:06:02
2021年10月10日 CST 下午12:06:02
2021/10/10 下午12:06
2021年10月10日 下午12:06:02
********getTimeByCalendar********************
现在的时间是:公元2021年9月10日,0时6分2秒, 一周的第几天:1
********getTimeByGivenLocalDateTime****************
time:2021-10-09T15:32:06.777
今天是2021-10-09T15:32:06.777
本年当中第282天
本月当中第9天
本周中星期6-即SATURDAY 今天是2021-10-09T15:32:06.777
年 : 2021
月 : 10-即 OCTOBER
日 : 9
时 : 15
分 : 32
秒 : 6 ********between****************
time:2021-10-09T17:32:06.777
7200000 Process finished with exit code 0

LocalDateTime获取 年月日时分秒和判断日期大小的更多相关文章

  1. Sql 中获取年月日时分秒的函数

    getdate():获取系统当前时间 dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate()) ...

  2. jquery获取年月日时分秒当前时间

    获取年月日时分秒的当前时间,可按照某种格式显示出来,下面是一种得到如2017年02月02日  00:00:00格式的当前时间 function getCurrentDate(date){ var y ...

  3. java Date获取 年月日时分秒

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  4. JS获取年月日时分秒

    var d = new Date(); ) + "-" + d.getDate() + " " + d.getHours() + ":" + ...

  5. 2018.2.2 java中的Date如何获取 年月日时分秒

    package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; pub ...

  6. Android Calendar获取年月日时分秒毫秒

    开始使用new Date()测试,并用通过date.getMonth(),和date.getDay()获取,不过后来发现这两个访求是jdk1.1版本的,现在已经不用了,而且结果也不正确. ; int ...

  7. TEST===>Sqlserver中获取年月日时分秒

    可以用两种方法获取 1. select GETDATE() as '当前日期', DateName(year,GetDate()) as '年', DateName(month,GetDate()) ...

  8. android获取年月日时分秒

    Calendar calendar=Calendar.getInstance(); //获取当前时间,作为图标的名字 String year=calendar.get(Calendar.YEAR)+& ...

  9. python 获取年月日时分秒 获取当前时间 datetime函数

    import datetime#取当前时间print(datetime.datetime.now())#取年print(datetime.datetime.now().year)#取月print(da ...

  10. js 获取年月日时分秒,星期

    getDate() { var date = new Date() // 获取时间 var year = date.getFullYear() // 获取年 var month = date.getM ...

随机推荐

  1. day4-进制与位运算

    进制 对于整数有4种表现方式 二进制,满二进一 十进制,满10进1 八进制,满8进1,数字0开头 十六进制,满16进1,以0x或0X开头 进制转换 二进制转十进制 规则:从最低位开始(右边),将每位数 ...

  2. buuctf-web 解题过程

    [SUCTF 2019]Upload Labs 2 源码 // admin.php <?php include 'config.php'; class Ad{ public $cmd; publ ...

  3. .NET周刊【3月第1期 2025-03-02】

    国内文章 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章 https://www.cnblogs.com/shanyou/p/18737657 2025年2月25日,.NET ...

  4. Jupyter Notebook的所有文件ipynb保存下来

    前言 如果你想要保存整个 Jupyter Notebook 工作目录,包括所有笔记本和其他相关文件,最直接的方法是将整个文件夹压缩为一个 ZIP 或 TAR 文件. 下载单个文件 压缩文件夹下载 在 ...

  5. MFC使用WM_COPYDATA消息进行进程间的通讯

    一.介绍 Windows上MFC应用程序可使用WM_COPYDATA可以完成两个进程之间的通讯.当一个应用向另一个应用传送数据时,发送方需调用SendMessage函数,参数是目的窗口的句柄.传递数据 ...

  6. Code Runner MCP Server,来了!

    大家好!我是韩老师. 如果作为程序员的你,还不了解 MCP (Model Context Protocol) 的话,那韩老师劝你赶紧去补补课吧! 本文不对 MCP 进行详细介绍~ 简单来说,MCP i ...

  7. bug|Git Hooks pre-commit|git 提交代码报错|error: 'describe' 'it' 'expect' is not defined (no-undef)|pre-commit hook failed (add --no-verify to bypass)|

    前言 今天学习 jest 的 vue-test-utils 的配置及使用. 报错原因为 jest 全局变量 git 提交代码报错,使用除了参考链接里的解决方案,正好复习一下之前学习的 Git Hook ...

  8. Delphi 检测鼠标键盘多久没有活动

    function GetInputAwayTime():DWORD; var lpi:TLastInputInfo; begin lpi.cbSize := sizeof(lpi); GetLastI ...

  9. 使用`forEach`方法前后的代码逐步简化过程

    简化前的完整循环代码 首先,我们使用传统的for-each循环遍历HashMap: import java.util.HashMap; import java.util.Map; public cla ...

  10. IE 条件注释

    参考文档 IE6 IE7 IE8 IE9 IE10 Css hack及IE条件注释法 IE的有条件注释判定IE版本详解(附实例代码)