iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java8新特性之日期时间API
  • 433
分享到

java8新特性之日期时间API

2024-04-02 19:04:59 433人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录jdk8之前 一、java.lang.System二、java.util.Date And java.sql.Date三、java.text.SimpleDateFOR

jdk8之前

 一、java.lang.System

在这里插入图片描述


long times = System.currentTimeMillis();
		//返回的是当前时间与1970年1月1月1日0分0秒之间以毫秒为单位的时间差
		//称为时间戳
		System.out.println(times);

在这里插入图片描述

二、java.util.Date And java.sql.Date

在这里插入图片描述

将java.util.Date 对象转换为java.sql.Date对象:


	//将java.util.Date 对象转换为java.sql.Date对象
		Date date1 = new Date();
		java.sql.Date date2 = new java.sql.Date(date1.getTime());

三、java.text.SimpleDateFormat

SimpleDateFormat是对日期Date类的格式化和解析。

在这里插入图片描述

两个操作:

1.格式化:

将日期转换为字符串


SimpleDateFormat sfd = new SimpleDateFormat();
		Date date = new Date();
		System.out.println(date);
		String formateDate = sfd.format(date);
		System.out.println(formateDate);

在这里插入图片描述

也可以指定具体的格式化格式,查看具体的api格式。
例:指定格式的格式化输出(调用带参数的构造器)


Date date = new Date();
		System.out.println(date);
		SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		String formateDate = sfd.format(date);
		System.out.println(formateDate);

在这里插入图片描述

2.解析:

将 字符串 转换为 日期。即格式化的逆过程。


String str = "2021/4/12 下午10:16";
	    SimpleDateFormat sfd = new SimpleDateFormat();
		Date date2 = sfd.parse(str);
		System.out.println(date2);

这个注意要抛异常(传入的str格式要与Date的原格式一致,或者说要与SimpleDateFormate当前识别的格式相同)。

练习:将字符串“2021-04-13” 转换为java.sql.Date类型对象。

分析:首先将字符串解析为Date类型的对象,然后在转为java.sql.Date类型对象。


public static void testExper() throws ParseException {
		String s = "2021-04-13";
		SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd");
		Date date = sfd.parse(s);
		java.sql.Date date2 = new java.sql.Date(date.getTime());
		System.out.println(date2);
	}

在这里插入图片描述

四、java.util.Calendar

在这里插入图片描述

常用实例化方法:


	Calendar calendar = Calendar.getInstance();
		System.out.println(calendar.getClass()); //java.util.GreGorianCalendar,其实还是子类类型的对象

常用方法:

1.get():获取常用的属性和信息。
2.set():设置:相当于把本身的日期给改变了
3.add():添加(增加时间、天数)
4.getTime():日历类----> Date类
5.setTime():Date类----> 日历类


Calendar calendar = Calendar.getInstance();
//		System.out.println(calendar.getClass()); //java.util.GregorianCalendar
		//get()
		int days = calendar.get(calendar.DAY_OF_MONTH);//获取当前日期是这个月的第几天
		System.out.println(days); //13
		//set()
		calendar.set(calendar.DAY_OF_MONTH, 22);//重新设置
	    days = calendar.get(calendar.DAY_OF_MONTH);//在重新获取
		System.out.println(days); //22
		//add()
		calendar.add(calendar.DAY_OF_MONTH, 3);
		days = calendar.get(calendar.DAY_OF_MONTH);
		System.out.println(days); //25

		//getTime():日历类----> Date类
		Date date = calendar.getTime();
		System.out.println(date); //Sun Apr 25 13:14:59 CST 2021

		//setTime():Date类----> 日历类
		Date date2 = new Date();
		calendar.setTime(date2);
		days = calendar.get(calendar.DAY_OF_MONTH);
		System.out.println(days); //13

在这里插入图片描述

jdk8中:java.time

新日期时间API出现的背景:

可变性:像日期和时间这样的类应该是不可变的。
偏移性:Date中的年份是从1900开始的,而月份都是从0开始。
格式化:格式化只对Date有用,Calendar则不行。

此外,他们也不是线程安全的;不能处理闰秒。

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

一、常用类

说明:LocalDateTime类相较于其他两个类使用频率较高。

在这里插入图片描述

二、一些方法

在这里插入图片描述

(1)now():获取当前的日期、时间、日期+时间。(实例化方法一)


LocalDate localDate = LocalDate.now();
		LocalTime localTime = LocalTime.now();
		LocalDateTime localDateTime = LocalDateTime.now();
		System.out.println(localDate);
		System.out.println(localTime);
		System.out.println(localDateTime);

在这里插入图片描述

(2)of():设置指定时间的年、月、日、时、分。没有偏移量。(实例化方法二)


//of():设置指定时间的年、月、日、时、分。没有偏移量。
		LocalDateTime localDateTime2 = LocalDateTime.of(2021, 4, 13, 15, 20);
		System.out.println(localDateTime2);

(3)getXxx():获取…
(4)withXxx():修改(设置)…,这个方法不会改动原本的值。
(5)plusXxx():添加
(6)minusXxx():减

三、Instant

在这里插入图片描述

在这里插入图片描述

(1)now():获取本初子午线对应的标准时间。(实例化方法一)


//now():获取本初子午线对应的标准时间
		Instant instant = Instant.now();
		System.out.println(instant);
		//添加时间的偏移量
		OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
		System.out.println(offsetDateTime);

(2)toEpochMilli():获取毫秒数


long milli = instant.toEpochMilli();
		System.out.println(milli);

(3)ofEpochMilli():通过给定的毫秒数,获取Instant实例 (实例化方法二)


//通过给定的毫秒数,获取Instant实例
		Instant instant2 = Instant.ofEpochMilli(1618300028028l);
		System.out.println(instant2);

四、DateTimeFormatter类

DateTimeFormatter类:格式化或解析日期、时间,类似于SimpleDateFormat。

在这里插入图片描述

(1)预定义的标准格式进行格式化:DateTimeFormatter.ISO_LOCAL_DATE_TIME

注意: 日期-----> 字符串


DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
		LocalDateTime localDateTime = LocalDateTime.now();
		String str = formatter.format(localDateTime);//注意类型变化
		System.out.println(localDateTime);
		System.out.println(str);

(2)本地化相关的格式。如:ofLocalizedDateTime()。

//FormatStyle.SHORT / FormatStyle.LONG / FormatStyle.MEDIUM :适用于LocalDateTime


	DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
		LocalDateTime localDateTime = LocalDateTime.now();
		String str = formatter.format(localDateTime);
		System.out.println(localDateTime);
		System.out.println(str);

在这里插入图片描述

(3)自定义格式:ofPattern()


//自定义格式。如:
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
		String string = formatter.format(LocalDateTime.now());
		System.out.println(string);

在这里插入图片描述

在这里插入图片描述

到此这篇关于java8新特性之日期时间API的文章就介绍到这了,更多相关Java日期时间API内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: java8新特性之日期时间API

本文链接: https://www.lsjlt.com/news/123765.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java8新特性之日期时间API
    目录jdk8之前 一、java.lang.System二、java.util.Date And java.sql.Date三、java.text.SimpleDateFor...
    99+
    2024-04-02
  • 深入理解Java8新特性之新日期时间API的应用
    目录1.新旧对比(线程安全问题)2.LocalDate3.LocalTime4.LocalDateTime5.Instant6.Duration、Period7.TestTempor...
    99+
    2024-04-02
  • Java8新特性Optional类及新时间日期API示例详解
    目录Optional类以前对null的处理Optional类介绍Optional的基本使用Optional的常用方法新时间日期API旧版日期时间的问题新日期时间API介绍日期时间的常...
    99+
    2022-11-13
    Java8 Optional类时间日期API Java8 新特性
  • Java8新特性之线程安全日期类
    目录LocalDateTimeSimpleDateFormat线程不安全SimpleDateFormat如何保证线程安全Java8全新的日期和时间APILocalDateLocalT...
    99+
    2024-04-02
  • Java8新特性之Stream API详解
    目录一、前言二、使用流程三、案例演示一、前言 StreamAPI在Java8版本中使用,关注的是对数据的筛选、查找、存储等 它可以做的事情有:过滤、排序、映射、归约 二、使用流程 S...
    99+
    2024-04-02
  • Java8中日期API的特性有哪些
    这期内容当中小编将会给大家带来有关Java8中日期API的特性有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.Clock 时钟Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可...
    99+
    2023-05-31
    java8 日期api ava
  • 深入浅析Java8中日期与时间的特性
    深入浅析Java8中日期与时间的特性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。日期是商业逻辑计算一个关键的部分,任何企业应用程序都需要处理时间问题。应用程序...
    99+
    2023-05-31
    java8 ava 中日
  • Java8 日期/时间API指南是什么
    Java8 日期/时间API指南是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,...
    99+
    2023-06-17
  • Java8 日期、时间操作代码
    目录一、简介本地化日期时间 API使用时区的日期时间API二、日期初识三、时间初识四、比较与计算五、时区六、格式化七、相关类说明java8时间使用小结一、简介   在Java8之前,...
    99+
    2024-04-02
  • Java8中如何使用日期时间
    Java8中如何使用日期时间,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。初始化日期时间初始化2020年11月11日11点11分11秒时间,这样可行吗日志输出时...
    99+
    2023-06-15
  • 熟练掌握Java8新特性之Stream API的全面应用
    1.写在前面 关于Stream API的内容,已经基本上说完了。大家可以参考我的这两篇文章: 深入理解Java8新特性之Stream API的创建方式和中间操作步骤、深入理解Java...
    99+
    2024-04-02
  • Java8新特性之Collectors.joining()实例详解
    目录方法定义无参方法单个参数多个参数如果流中的数据是字符串如果流中的数据是对象总结方法定义 Java 8 流 ( stream ) 收集器 ( Collectors ) 中的&nbs...
    99+
    2023-01-12
    java8新特性collectors.joining() java8 collectors.joining()
  • 深入了解Java8中的时区日期时间
    目录Java8Tester.java处理时区上一章节 Java 8 新日期时间 API ( 上 ) – 本地日期时间 我们对 Java 8 重新设计的日期时间 API 做...
    99+
    2023-05-14
    Java8时区日期时间 Java8 日期时间 Java8时区
  • Java8中的时区日期时间怎么处理
    今天小编给大家分享一下Java8中的时区日期时间怎么处理的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。我同时也发现,这三个类...
    99+
    2023-07-05
  • Python时间,日期,时间戳之间转换
    1.将字符串的时间转换为时间戳    方法:        a = "2013-10-10 23:40:00"        将其转换为时间数组        import time        timeArray = time.strp...
    99+
    2023-01-31
    时间 日期 Python
  • 深入理解Java8新特性之Stream API的终止操作步骤
    目录1.写在前面2.终止操作2.1 终止操作之查找与匹配2.2 终止操作之归约与收集1.写在前面 承接了上一篇文章(说完了Stream API的创建方式及中间操作):深入理解Java...
    99+
    2024-04-02
  • 深入理解Java8新特性之Stream API的创建方式和中间操作步骤
    目录1.什么是StreamAPI?2.Stream API操作的三个步骤2.1 创建Stream2.2 中间操作2.2.1 中间操作之筛选与切片2.2.2 中间操作之映射2.2.3 ...
    99+
    2024-04-02
  • Java8新特性之默认方法详解
    目录简介正文什么是默认方法为啥要提供默认方法呢?如果不提供呢?主要针对谁?实现了默认方法的接口和抽象类有区别吗是不是可以说Java现在也实现了多重继承?总结简介 在Java之前,我们...
    99+
    2024-04-02
  • java时间日期的API有哪些
    本篇内容主要讲解“java时间日期的API有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java时间日期的API有哪些”吧!1、Clock提供了访问当前时间和日期的功能。Clock对当前时...
    99+
    2023-06-30
  • java中有哪些时间日期API
    本篇文章给大家分享的是有关java中有哪些时间日期API,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作