JAVA中的日期

获取当前的日期 LocalDate

  		LocalDate today = LocalDate.now();
		System.out.println("今天是:"+today);//今天是:2024-05-06
		String format = today.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
		System.out.println("今天是:" + format);//今天是:2024年05月06日
		String format1 = today.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
		System.out.println("今天是:" + format1);//今天是:2024年05月06日

获取年月日

  		LocalDate today = LocalDate.now();
		int year = today.getYear();
		int month = today.getMonthValue();
		int day = today.getDayOfMonth();
		//Year: 2024 Month: 5 Day: 6
		System.out.printf("Year: %d Month: %d Day: %d%n", year, month, day);

日期创建

  		LocalDate today = LocalDate.of(2017, 9, 1);
		//today = 2017-09-01
		System.out.println("today = " + today);

两个日期判断是否相等

  		LocalDate today = LocalDate.now();
		LocalDate before = LocalDate.of(2017, 9, 1);
		if (today.equals(before)) System.out.println("相等");
		else System.out.println("不相等");

YearMonth

  		YearMonth currentYearMonth = YearMonth.now();
		//当前是 2023-05 月 共: 31 天 %n 表示换行
		System.out.printf("当前是 %s  本月共: %d 天 %n", currentYearMonth, currentYearMonth.lengthOfMonth());
		YearMonth creditCardExpiry = YearMonth.of(2029, Month.APRIL);
		//你的信用卡将于 2029-04 到期
		System.out.printf("你的信用卡将于 %s 到期", creditCardExpiry);

周期性时间

  		LocalDate today = LocalDate.now();
		LocalDate birthdayDate = LocalDate.of(2017, 9, 1);
		MonthDay birthday = MonthDay.of(birthdayDate.getMonth(), birthdayDate.getDayOfMonth());
		MonthDay currentMonthDay  = MonthDay.from(today);
		if (birthday.equals(currentMonthDay)) System.out.println("今天是你的生日");
		else System.out.println("今天不是你的生日");

获取当前时间 LocalTime

  		LocalTime now = LocalTime.now();
		//now=16:13:44.416679400
		System.out.println("now="+now);
		String timeWithMillis = now.format(DateTimeFormatter.ofPattern("HH:mm:ss.SSS"));
		//timeWithMillis=16:13:44.416
		System.out.println("timeWithMillis="+timeWithMillis);

获取当前时间前后的时间

  		LocalTime now = LocalTime.now();
		System.out.println("现在时间是:"+now);
		LocalTime hourAfter = now.plusHours(2);
		System.out.println("两小时之后的时间是:"+hourAfter);
		LocalTime hourBefore = now.minusHours(2);
		System.out.println("两小时之前的时间是:"+hourBefore);
		LocalTime localTime = now.plusMinutes(2);
		System.out.println("两分钟之后的时间是:"+localTime);
		System.out.println("两分钟之前的时间是:"+now.minusMinutes(2));
		System.out.println("两秒之后的时间是:"+now.plusSeconds(2));
		System.out.println("两秒之前的时间是:"+now.minusSeconds(2));
		System.out.println("两纳秒之后的时间是:"+now.plusNanos(2));
		System.out.println("两纳秒之前的时间是:"+now.minusNanos(2));

获取当前日期前后的日期

  		LocalDate now = LocalDate.now();
		//当前日期:2024-05-06
		System.out.println("当前日期:"+now);
		//一周后的日期:2024-05-13
		System.out.println("一周后的日期:"+now.plusWeeks(1));
		//一周前的日期:2024-04-29
		System.out.println("一周前的日期:"+now.minusWeeks(1));
		//一月后的日期:2024-06-06
		System.out.println("一月后的日期:"+now.plusMonths(1));
		//一月前的日期:2024-04-06
		System.out.println("一月前的日期:"+now.minusMonths(1));
		//一年后的日期:2025-05-06
		System.out.println("一年后的日期:"+now.plusYears(1));
		//一年前的日期:2023-05-06
		System.out.println("一年前的日期:"+now.minusYears(1));

Clock 时钟类(时间戳)

  		Clock clock = Clock.systemUTC();
		// 获取当前时间戳	1714988314792
		System.out.println(clock.millis());
		Clock clock1 = Clock.systemDefaultZone();
		// 获取当前时间戳	1714988314808
		System.out.println(clock1.millis());
		// 也可以	1714988314808
		System.out.println(System.currentTimeMillis());
		Instant timestamp = Instant.now();
		//			1714988314808
		System.out.println(timestamp.toEpochMilli());

判断日期早晚于

  		LocalDate now = LocalDate.now();
		System.out.println("今天是:"+now);//今天是:2024-05-06
		LocalDate day = LocalDate.of(2024, 5, 6);
		LocalDate yesterday = LocalDate.of(2024, 5, 5);
		LocalDate tomorrow = LocalDate.of(2024, 5, 7);
		if (now.isAfter(day)) {
			//now和day是同一天,所以不会输出
			System.out.println("now是day之后的日期");
		}
		if (now.isBefore(day)) {
			//now和day是同一天,所以不会输出
			System.out.println("now是day之前的日期");
		}
		if (now.isAfter(yesterday)) {
			//正常输出 now是yesterday之后的日期
			System.out.println("now是yesterday之后的日期");
		}
		if (now.isBefore(tomorrow)) {
			//正常输出 now是tomorrow之前的日期
			System.out.println("now是tomorrow之前的日期");
		}

时区

  		ZoneId america = ZoneId.of("America/New_York");
		LocalDateTime localtDateAndTime = LocalDateTime.now();
		//当前本地时间:2024-05-06T16:52:11.234393300
		System.out.println("当前本地时间:"+localtDateAndTime);
		ZonedDateTime dateAndTimeInNewYork  = ZonedDateTime.of(localtDateAndTime, america );
		//TODO: 这一块输出的时间应该和currentDateTimeInNY一样吧。
		//把当前时间转换成纽约时区的时间	New_York Time Zone : 2024-05-06T16:52:11.234393300-04:00[America/New_York]
		System.out.println("New_York Time Zone : " + dateAndTimeInNewYork);
		ZonedDateTime currentDateTimeInNY = ZonedDateTime.now(ZoneId.of("America/New_York"));
		//直接获取纽约时区的时间		Current Time in New York: 2024-05-06T04:52:11.237388200-04:00[America/New_York]
		System.out.println("Current Time in New York: " + currentDateTimeInNY);

闰年判断

  		LocalDate now = LocalDate.now();
		if (now.isLeapYear()) {
			// 闰年
			System.out.println("闰年");
		}else {
			System.out.println("平年");
		}
		LocalDate leapYear = LocalDate.of(2018, 2, 5);
		if (leapYear.isLeapYear()) {
			System.out.println("闰年");
		} else {
			// 平年
			System.out.println("平年");
		}

日期间的天数和月数

	public static void main(String[] args) {
		LocalDate today = LocalDate.now();
		//today = 2024-05-06
		System.out.println("today = " + today);
		LocalDate java = LocalDate.of(2018, 12, 14);
		//参数1是开始时间,参数2是结束时间   五年四个月二十二天
		Period result = Period.between(java,today);
		//today和java相差了-4月
		System.out.println(" java 和 today 相差了 "+ result.getMonths()+"月");
		//today和java相差了-23天
		System.out.println(" java 和 today 相差了 "+ result.getDays()+"天");
		//today和java相差了-5年
		System.out.println(" java 和 today 相差了 "+ result.getYears()+"年");

		// java 和 today 相差了 1970天
		System.out.println(" java 和 today 相差了 "+ daysBetween(java,today)+"天");
		// java 和 today 相差了 64月
		System.out.println(" java 和 today 相差了 "+ monthsBetween(java,today)+"月");
		// java 和 today 相差了 5年
		System.out.println(" java 和 today 相差了 "+ yearsBetween(java,today)+"年");
	}
	public static int daysBetween(LocalDate date1, LocalDate date2) {
		return (int) ChronoUnit.DAYS.between(date1, date2);
	}
	public static int monthsBetween(LocalDate date1, LocalDate date2) {
		return (int) ChronoUnit.MONTHS.between(date1, date2);
	}
	public static int yearsBetween(LocalDate date1, LocalDate date2) {
		return (int) ChronoUnit.YEARS.between(date1, date2);
	}

解析或格式化日期

  		String date = "20180205";
		LocalDate formatted1 = LocalDate.parse(date, DateTimeFormatter.BASIC_ISO_DATE);
		//20180205  格式化后的日期为:  2018-02-05
		System.out.println(date+"  格式化后的日期为:  "+formatted1);
		LocalDate formatted2 = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyyMMdd"));
		//20180205  格式化后的日期为:  2018-02-05
		System.out.println(date+"  格式化后的日期为:  "+formatted2);

		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
		String format = formatted2.format(dateTimeFormatter);
		//20180205  格式化后的日期为:  2018/02/05
		System.out.println("20180205  格式化后的日期为:  "+format);

日期字符串转换

  		LocalDateTime date = LocalDateTime.now();
		//要是用yyyy/MM/dd 下面字符串转日期的要保持一致
		DateTimeFormatter format1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		//日期转字符串
		String str = date.format(format1);
		//日期转换为字符串:2024-05-06 18:06:29
		System.out.println("日期转换为字符串:"+str);

		DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		//字符串转日期
		LocalDateTime date2 = LocalDateTime.parse(str,format2);
		//字符串转日期:2024-05-06T18:06:29
		System.out.println("字符串转日期:"+date2);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/607417.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【websocket-客户端可视化工具】

postman 新版postman (版本v11以上) ,除了http协议,还支持了Websocket,MQTT,gRPC等多种连接协议,可以作为多种协议的客户端,使用起来非常方便。 使用 服务端代码 这里以websocket协议举例,代…

【Linux】网络接口绑定和组合的操作实例

网络接口绑定和组合的操作实例 (一)网卡1. 增2. 查3. 激活——设置网络接口 (二)网络接口绑定1. 概述2. 实验操作3. 删除绑定 (三)网络接口组合1. 概述2. 实验操作 (一)网卡 1. 增 …

分割模型Maskformer系列

maskformer:Per-Pixel Classification is Not All You Need for Semantic Segmentation 论文地址:https://arxiv.org/pdf/2107.06278 1.概述 传统的语义分割方法通常采用逐像素分类(per-pixel classification),而实…

【JAVA基础之装箱和拆箱】自动装箱和自动拆箱

🔥作者主页:小林同学的学习笔录 🔥mysql专栏:小林同学的专栏 目录 1.包装类 1.1 概述 1.2 Integer类 1.3 装箱和拆箱 1.4 自动装箱和自动拆箱 1.5 基本类型与字符串之间的转换 1.5.1 基本类型转换为字符串 1.5.2 字符串转…

带你破解晶振PCB的布局要点!

一、晶振的分类 01 无源晶振 无源晶振器是一种 passives 振荡器,它不需要外部电源来维持振荡。它的振荡频率由晶体的物理尺寸和材料特性决定(一般都采无源晶振)。 02 有源晶振 有源晶振器是一种 active 振荡器,它需要外部电源来…

计算机中GPU快不行的几个标志,看下有没有你遇到的

GPU是处理图形密集型任务的主要组件。尽管它非常耐用,但它最终会磨损并开始失效。在到达生命的终结之前,它通常会显示出即将发生故障的迹象,需要及时修复或更换。本指南详细介绍了这些标志。 在我们开始之前 在深入研究GPU故障的迹象之前,重要的是要承认,下面提到的一些…

卷积通用模型的剪枝、蒸馏---蒸馏篇--RKD关系蒸馏(以deeplabv3+为例)

本文使用RKD实现对deeplabv3+模型的蒸馏;与上一篇KD蒸馏的方法有所不同,RKD是对展平层的特征做蒸馏,蒸馏的loss分为二阶的距离损失Distance-wise Loss和三阶的角度损失Angle-wise Loss。 一、RKD简介 RKD算法的核心是以教师模型的多个输出为结构单元,取代传统蒸馏学习中以教…

Leetcode—394. 字符串解码【中等】

2024每日刷题&#xff08;131&#xff09; Leetcode—394. 字符串解码 实现代码 class Solution { public:string decodeString(string s) {string curstr;int curNum 0;stack<pair<string, int>> st; for(char c: s) {if(isdigit(c)) {curNum curNum * 10 (c…

电脑中的两个固态硬盘比一个好,想知道为什么吗

你当前的电脑很有可能有一个NVME SSD作为主驱动器&#xff0c;但可能至少还有一个插槽可以放另一个SSD&#xff0c;而且这样做可能是个好主意。 两个SSD可以提高性能 如果你有两个固态硬盘&#xff0c;你可以从中获得比有一个更好的性能。一种方法是使用RAID 0将两个驱动器组…

Python_AI库 Pandas的loc和iloc的区别与使用实例

Python中Pandas的loc和iloc的区别与使用实例 在Pandas中&#xff0c;loc和iloc是两个常用的方法&#xff0c;用于基于标签&#xff08;label&#xff09;和整数位置&#xff08;integer location&#xff09;来选择数据。尽管两者在功能上有重叠&#xff0c;但它们在用法和性能…

OceanBase开发者大会实录:SaaS 场景降本50%!石基零售应用 OB Cloud 实践

本文来自2024 OceanBase开发者大会&#xff0c;石基零售助理总裁 、 ROC 产品事业部负责人陈亮的演讲实录—《石基零售与 OB Cloud 零售行业应用实践》。完整视频回看&#xff0c;请点击这里&#xff1e;> 大家下午好&#xff01;我是石基零售的陈亮。今天和大家分享一下石基…

struct和union大小计算规则

Union 一&#xff1a;联合类型的定义 联合也是一种特殊的自定义类型&#xff0c;这种类型定义的变量也包含一系列的成员&#xff0c;特征是这些成员公用同一块空间&#xff08;所以联合也叫共用体&#xff09; 比如&#xff1a;共用了 i 这个较大的空间 二&#xff1a; 联合的…

数据分析从入门到精通 2.pandas修真之前戏基础

从爱上自己那天起&#xff0c;人生才真正开始 —— 24.5.6 为什么学习pandas numpy已经可以帮助我们进行数据的处理了&#xff0c;那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据&#xff0c;当然在数据分析中除了数值型的数据还有好多其他类型…

信通院智能体标准发布,实在智能牵头编写

4月28日&#xff0c;由人工智能关键技术和应用评测工业和信息化部重点实验室、中国信息通信研究院&#xff08;以下简称&#xff1a;中国信通院&#xff09;人工智能研究所共同主办的“人工智能”高质量发展研讨会顺利召开&#xff0c;会上中国信通院正式发布全国首个Agent&…

【C++】string类的使用②(容量接口Capacity || 元素获取Element access)

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; STL || C 目录 前言&#x1f525;容量接口&#xff08;Capacity&#xff09;size和lengthcapacitymax_sizereserveresizeclearemptyshrink_to_fit &#x1f525;元素获取&#xff08;Ele…

从零开始打造个性化生鲜微信商城小程序

随着移动互联网的普及&#xff0c;小程序商城已经成为越来越多商家的选择。本文将通过实战案例分享&#xff0c;教您如何在五分钟内快速搭建个性化生鲜小程序商城。 步骤一&#xff1a;登录乔拓云网后台&#xff0c;进入商城管理页面 打开乔拓云官网&#xff0c;点击右上角的“…

【连连国际注册_登录安全分析报告】

连连国际注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨…

队列 (Queue)

今日励志语句&#xff1a;别总听悲伤的歌&#xff0c;别总想从前的事&#xff0c;别让过去拖住脚&#xff0c;别让未来被辜负。 前言&#xff1a;前面写了一篇 栈的实现&#xff0c;接下来学习一下它的"兄弟" 一、队列的概念&#xff1a; 队列&#xff1a; 也是数据…

C++类和对象(三) 缺省值 | static成员 | 内部类

前言&#xff1a; 这是关于类和对象的最后一篇文章&#xff0c;当然还是基础篇的最后一篇&#xff0c;因为类的三大特性继承&#xff0c;封装和多态都还没有讲&#xff0c;少年&#xff0c;慢慢来。 缺省值&#xff1a; 之前讲过&#xff0c;在C11的新标准中&#xff0c;支持为…

百面算法工程师 | 支持向量机面试相关问题——SVM

本文给大家带来的百面算法工程师是深度学习支持向量机的面试总结&#xff0c;文章内总结了常见的提问问题&#xff0c;旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中&#xff0c;我们还将介绍一些常见的深度学习算法工程师面试问题&#xff0c;并提供参考的回答…
最新文章