jdk7新增时间类Date,SimpleDateFormat,Calendar

2023-10-19 21:52

本文主要是介绍jdk7新增时间类Date,SimpleDateFormat,Calendar,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Date

//需求1 打印时间远点开始一年后的时间extracted();//需求2 定义任意两个date对象  比较那个时间在前 哪个在后Random r=new Random();Date date1=new Date(Math.abs(r.nextInt()));Date date2=new Date(Math.abs(r.nextInt()));System.out.println(date1);System.out.println(date2);if (date1.getTime()> date2.getTime()){System.out.println("date1时间大");}else{System.out.println("date2时间大");}}private static void extracted() {//获取时间原点Date d=new Date(0l);//获取毫秒值long time = d.getTime();//获取一年的毫秒值time=time+1000l*60*60*24*365;d.setTime(time);System.out.println(d);

小结

在这里插入图片描述

SimpleDateFormat

  • 格式化:把时间变成我们喜欢的格式
  • 解析:把字符串表示的时间变成Date对象(然后用getTime方法获取毫秒值)

在这里插入图片描述
在这里插入图片描述

  //空参构造SimpleDateFormat sdf1=new SimpleDateFormat();//new出一个原点时间Date d1=new Date();//这个需要传入你要改变的时间String str1 = sdf1.format(d1);System.out.println(str1);//2023/10/12 下午12:51  空参构造默认模式SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EE");//new出一个原点时间Date d2=new Date();//这个需要传入你要改变的时间String str2 = sdf2.format(d2);System.out.println(str2);//2023-10-12 12:57:02 周四 周四 这是用带参构造生成的

格式化

 //解析 parse 字符串获取日期对象String s="2023-10-12 12:57:02";SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = sdf3.parse(s);System.out.println(date.getTime());//1697086622000 打印结果

解析

练习1

把2000-11-11 格式改为 2000年11月11日

  String s="2000-11-11";//解析SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");Date date = sdf1.parse(s);//格式化SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd");String s1 = sdf2.format(date);System.out.println(s1);

练习2

在这里插入图片描述

  //小假下单付款时间 2023年11月11号 0:01:00//秒杀开始时间 2023年11月11号 0:0:0//秒杀结束时间 2023年11月11号 0:10:0String buy="2023年11月11号 0:11:00";String start="2023年11月11号 0:0:0";String end="2023年11月11号 0:10:0";//解析得到 date对象SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd号 HH:mm:ss");Date buyDate = sdf1.parse(buy);Date startDate = sdf1.parse(start);Date endDate = sdf1.parse(end);//用对想得到毫秒值if(buyDate.getTime()>=startDate.getTime()&&buyDate.getTime()<=endDate.getTime()){System.out.println("秒杀成功");}else{System.out.println("秒杀失败");}

Calendar

以往的知识把时间加一个月比较复杂 这时候这个Calendar就发挥了作用
在这里插入图片描述
在这里插入图片描述


import java.util.Calendar;
import java.util.Date;public class api171 {public static void main(String[] args) {Calendar c = Calendar.getInstance();//日历类是一个抽象类 所以不能直接new出来  可以这样获取日历对象//底层原理 他会把事件中的纪元 年月日分秒星期等都存在一个数组里//细节二:  月份打印出来的范围是0到11  0相当于1月//星期在老外眼中星期日相当于i星期一//修改一下日历代表的事件Date d=new Date(0l);//代表new出来一个事件是1970哪个c.setTime(d);System.out.println(c);//getTimeMillis方法与上同理不做演示//add方法第一个为类型  第二个为要加的数量c.add(Calendar.MONTH,1);//打印结果1970//2//1//星期日int year = c.get(Calendar.YEAR);System.out.println(year);//单独获取年份int month = c.get(Calendar.MONTH)+1;System.out.println(month);int date = c.get(Calendar.DAY_OF_MONTH);System.out.println(date);//获取日期int week = c.get(Calendar.DAY_OF_WEEK);System.out.println(getWeek(week));//获取是星期  但是是1234567这种形式  我们想要的是星期一这种形式 用一个方法实现//1970//1//1//星期四  打印结果//第一个为要修改的类型  第二个为修改的结果c.set(Calendar.YEAR,2000);//2000//1//1//星期四//其他也是一样的方法}public static String getWeek(int index){String arr[]={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};//0索引为空 因为0索引不用填写   1索引对应星期天.  是因为老外的星期一是 我们的星期天return arr[index];}
}

小结

在这里插入图片描述

这篇关于jdk7新增时间类Date,SimpleDateFormat,Calendar的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/242604

相关文章

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J