java8 各种时间转换方法
java8 各种时间转换方法
本来按照常理日期时间是一个很简单的东西,只需要根据一个时间戳就可以算出当前的时间了。但这其实只是初级的想法,是因为你的项目还没有到跨时区部署的程度,一旦你的项目要部署到其他时区就会发现,同一个时间戳,在中国代表8点,在日本就代表9点了。Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的,所以随着java版本的升级,产生了一系列代表时间的类
- java.util.Date
- java.sql.Date
- java.sql.Time
- java.sql.Timestamp
- java.util.Calendar
- java.time.Instant
- java.time.LocalDate
- java.time.LocalTime
- java.time.LocalDateTime
- java.time.ZonedDateTime
其中后5个是java8以后才可以使用的时间类,是不是玲珑满目,目不暇接,除此之外这些时间类还有一系列配套格式转换工具,更是数不胜数。但java8以后的时间类就基本成熟了,可以适应目前所有的需求,下面逐一介绍java8以后的实践类
1.Instant
它代表的是时间戳
你可已使用instant.toEpochMilli()来输出Long类型的毫秒数
其他java8以后的时间类型都可以通过toInstant获取它
2.ZoneId
ZoneId代表的是时区,获取系统时区:
ZoneId zone = ZoneId.systemDefault();
- 1
中国使用的北京时间是在东八区,日本使用的东京时间是东九区,要根据不同时区获取时区类可使用一下方法:
ZoneId zoneId = ZoneId.of(“UTC+8”);//获取东八区的时区
3.LocalDateTime
LocalDate内部存储有日期和时间
通过 LocalDate.now()可以获取当前时间,但这个当前时间是基于0时区的,而我们中国位于东八区,所以需要传入我们的时区,
ZoneId zoneId = ZoneId.of("UTC+8");
LocalDate.now(zoneId)
- 1
- 2
返回的才是北京时间,
4.LocalDate 和LocalTime
LocalDate代表的是日期(年月日),LocalTime代表的是时间(时分秒),用法与LocalDateTime基本相同
5DateTimeFormatter 时间格式化成String
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String str= dtf2.format(dateTime);
- 1
- 2
其中dateTime变量可以是LocalDateTime 也可以是LocalDate和LocalTime
原文地址:https://blog.csdn.net/c0411034/article/details/81436093
java8 各种时间转换方法的更多相关文章
- Java8 日期/时间(Date Time)使用简介
特别说明: LocalDateTime 为日期时间的计算提供了很大的方便, 在构造对象/运算/toString等方便都非常便利. 3个常用的类: java.time.LocalDateTime; ja ...
- 详解JavaScript UTC时间转换方法
这篇文章主要介绍了JavaScript UTC时间转换方法,介绍了本地时间到UTC时间的转换.UTC日期到本地日期的转换,感兴趣的小伙伴们可以参考一下 一.前言 1.UTC: Universal Ti ...
- [转] Java8 日期/时间(Date Time)API指南
[From] http://www.importnew.com/14140.html Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间 ...
- Thymeleaf 如何支持java8的时间LocalDate和LocalDatetime
一.添加依赖 <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thym ...
- Java8 日期时间API
一.转换 1.与字符串 //LocalDateTime 转 字符串 String str = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss ...
- Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate
通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用ja ...
- java8日期时间
###与时间有关的5个包* java.time* java.time.chrono* java.time.format* java.time.temporal* java.time.zone###ja ...
- java8 日期时间之间的关系
Class or Enum Year Month Day Hours Minutes Seconds* Zone Offset Zone ID toString Output Where Discu ...
- Java8中时间日期库的20个常用使用示例
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API.Java对日期, ...
随机推荐
- 爬虫(四)Selenium + Headless Chrome爬取Bing图片搜索结果
Bing图片搜索结果是动态加载的,如果我们直接用requests去访问页面爬取数据,那我们只能拿到很少的图片.所以我们使用Selenium + Headless Chrome来爬取搜索结果.在开始前, ...
- crm-ssh-列表显示(顾客列表,用户,联系人列表)
客户列表 1 分析 2 书写步骤 1.封装PageBean 2.书写Action 3.书写Service 4.书写Dao 5.完成strutx以及spring的配置 6.书写前台list.jsp页面 ...
- iphone越狱开发之Class-Dump
刚刚开始接触ios越狱开发,现在开始纪录每天的点滴进展 装载请注明 http://www.cnblogs.com/xiongwj0910/archive/2012/08/16/2642988.html ...
- 【洛谷】P1427 小鱼的猜数游戏
P1427 小鱼的数字游戏 题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0 ...
- Leetcode36.Valid Sudoku有效的数独
判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 ...
- php中 重载的方法
php中 重载(一)这个文章,谢谢.作为初学者,大牛勿喷: 基本是两个方法 __call,当调用对一个不可访问的对象方法时,会自动执行该魔术方法!(对象调用) 典型的两种处理方式: 1,给出友好的提示 ...
- itextsharp 1.0
1 效果图 2.代码 引用组件: using iTextSharp.text;using iTextSharp.text.pdf;using System;using System.Data;usin ...
- go strcut 封装
package model import "fmt" type person struct { Name string age int //其它包不能直接访问.. sal floa ...
- pillow模块
pillow模块 用于操作图片的模块 安装 pip install pillow 生成验证码 from PIL import Image,ImageDraw,ImageFont from io imp ...
- js数组求交集
求两个数组的交集 var arr1 = [1,2,3]; var arr2 = [2,3,4]; var arr3; arr3 = arr1.filter(function(num) { return ...