localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化
一 前言
二 时间戳与LocalDateTime互转
2.1 LocalDateTime 转 时间戳
方式一
这边值得一提的是在中国的时区偏移是8小时,本次示例转的时间戳是秒级别,得到的值是一个long值;知识追寻者这边是当前时间,故读者得到的结果与知识追寻者得到的结果不一致;读者可以使用站长工具进行测试校验
@Test
public void localTimeTest1(){
// 获得当前时间
LocalDateTime localDateTime = LocalDateTime.now();
// 将当前时间转为时间戳
long second = localDateTime.toEpochSecond(ZoneOffset.ofHours(8));
// 1580706475
System.out.println(second);
}
方式二
此方法执行的结果与之前一致,也是秒级别
@Test
public void localTimeTest2(){
// 获得当前时间
LocalDateTime localDateTime = LocalDateTime.now();
// 将当前时间转为时间戳
long second = localDateTime.toInstant(ZoneOffset.ofHours(8)).getEpochSecond();
// 1580707001
System.out.println(second);
}
方式三
此方式转的将是毫秒级别,直接用于站长工具是测试不出来,读者应该将其除1000取商获得正确的秒级时间戳;
@Test
public void localTimeTest3(){
// 获得当前时间
LocalDateTime localDateTime = LocalDateTime.now();
// 将当前时间转为时间戳
long milliseconds = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
// 1580707268
System.out.println(milliseconds/1000);
}
2.2 时间戳 转LocalDateTime
以下几种获取的LocalDateTime方式按读者需求进行获取,不同的精确值,将获取不同的结果;
方式一
先获取时间戳为秒级别,然后通过转换为LocalDateTime
@Test
public void localTimeTest4(){
//获得时间戳
long second = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).getEpochSecond();
// 将时间戳转为当前时间
LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(second, 0, ZoneOffset.ofHours(8));
// 2020-02-03T13:30:44
System.out.println(localDateTime);
}
方式二
本次获取的时间搓将是毫秒级别故要除以1000
public void localTimeTest5(){
//获得时间戳
long milliseconds = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
// 将时间戳转为当前时间
LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(milliseconds/1000, 0, ZoneOffset.ofHours(8));
// 2020-02-03T13:35:53
System.out.println(localDateTime);
}
方式三
本方式精确值是毫秒级别,故得到的结果会存在三位小数点;
@Test
public void localTimeTest6(){
//获得时间戳
long milliseconds = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
// 将时间戳转为当前时间
LocalDateTime localDateTime = Instant.ofEpochMilli(milliseconds).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
// 2020-02-03T13:38:35.799
System.out.println(localDateTime);
}
三 时间戳与LocalDate互转
学会时间戳与LocalDate互转,同理就可以推出时间戳与LocalTime 互转,不过知识追寻者相信几乎没人会用到这个,故这边就不做示例;
3.1 时间戳转LocalDate
方式一
注意这边是毫秒级的时间戳;
@Test
public void localDateTest1(){
//获得时间戳
long milliseconds = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
// 将时间戳转为当前时间
LocalDate localDate = Instant.ofEpochMilli(milliseconds).atZone(ZoneOffset.ofHours(8)).toLocalDate();
// 2020-02-03
System.out.println(localDate);
}
方式二
注意这边是秒级时间戳
@Test
public void localDateTest2(){
//获得时间戳
long seconds = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).getEpochSecond();
// 将时间戳转为当前时间
LocalDate localDate = Instant.ofEpochSecond(seconds).atZone(ZoneOffset.ofHours(8)).toLocalDate();
// 2020-02-03
System.out.println(localDate);
}
3.2 LocalDate 转 时间戳
方式一
注意妙计时间戳
@Test
public void localDateTest3(){
LocalDate localDate = LocalDate.now();
//获得时间戳
long seconds = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().getEpochSecond();
// 1580659200
System.out.println(seconds);
}
方式二
注意毫秒级时间戳
@Test
public void localDateTest4(){
LocalDate localDate = LocalDate.now();
//获得时间戳
long seconds = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();
// 1580659200000
System.out.println(seconds);
}
四 LocalDateTime与Date互转
4.1 Date转LocalDateTime
方式一
得出结果是有小数点,毫秒级精确
@Test
public void DateTest1(){
// 创建时间
Date date = new Date();
// 将时间转为 LocalDateTime
LocalDateTime localDateTime = date.toInstant().atOffset(ZoneOffset.ofHours(8)).toLocalDateTime();
// 2020-02-03T14:07:49.833
System.out.println(localDateTime);
}
方式二
秒级精确;
@Test
public void DateTest2(){
// 创建时间
Date date = new Date();
// 将时间转为 秒级时间戳
long second = date.toInstant().atOffset(ZoneOffset.ofHours(8)).toEpochSecond();
LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(second, 0, ZoneOffset.ofHours(8));
// 2020-02-03T14:11:39
System.out.println(localDateTime);
}
4.2 LocalDateTime 转 Date
方式一
秒级
@Test
public void DateTest3(){
//当前时间
LocalDateTime localDateTime = LocalDateTime.now();
// 获得 Instant
Instant instant = Instant.ofEpochSecond(localDateTime.toEpochSecond(ZoneOffset.ofHours(8)));
// 获得 Date
Date date = Date.from(instant);
// Mon Feb 03 14:16:27 CST 2020
System.out.println(date);
}
方式二
@Test
public void DateTest4(){
//当前时间
LocalDateTime localDateTime = LocalDateTime.now();
// 获得 Instant
Instant instant = localDateTime.atZone(ZoneOffset.ofHours(8)).toInstant();
// 获得 Date
Date date = Date.from(instant);
// Mon Feb 03 14:20:32 CST 2020
System.out.println(date);
}
五 LocalDate与Date互转
5.1 LocalDate 转 Date
@Test
public void DateTest5(){
//当前时间
LocalDate localDate = LocalDate.now();
// 获得 Instant
Instant instant = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant();
// 获得 Date
Date date = Date.from(instant);
// Mon Feb 03 00:00:00 CST 2020
System.out.println(date);
}
5.2 Date 转LocalDate
@Test
public void DateTest6(){
// 获得 date
Date date = new Date();
// 获得 LocalDate
LocalDate localDate = date.toInstant().atOffset(ZoneOffset.ofHours(8)).toLocalDate();
// 2020-02-03
System.out.println(localDate);
}
六 LocalDateTime格式化
最后再说下格式化;知识追寻者这边就不提 LocalDateTime, LocalDate , LocalTime 互转问题,原因是前言那篇文章已经提到过;
6.1 LocalDateTime 转字符串
@Test
public void format1(){
// 获得 localDateTime
LocalDateTime localDateTime = LocalDateTime.now();
// 指定模式
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH/mm/ss");
// 将 LocalDateTime 格式化为字符串
String format = localDateTime.format(dateTimeFormatter);
// 2020/02/03 14/38/54
System.out.println(format);
}
6.2 字符串 转LocalDateTime
@Test
public void format2(){
String time = "2020/02/03 14/38/54";
// 指定模式
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH/mm/ss");
// 将字符串格式化为 LocalDateTime
LocalDateTime localDateTime = LocalDateTime.parse(time, dateTimeFormatter);
// 2020-02-03T14:38:54
System.out.println(localDateTime);
}
localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化相关推荐
- LocalDateTime获取时间戳、LocalDateTime与String互转、Date与LocalDateTime互转(Java8 特性)
LocalDateTime与String.Date的互转 废话不说了,直接上代码,喜欢自取:可以封装成util类~~ 1.得到当前的localDateTime public static LocalD ...
- linux中date命令如何设置时间戳,Linux基本命令之date命令的参数及获时间戳的方法...
1.时间命令:date 向date命令传递参数适用'+'(加号),在传递的参数中 %Y表示年 %m表示月 %d表示天 %H表示小时(表示的时间是00-23) %M表示分钟 %S表示秒 %s(表示uni ...
- run as date怎么用_熟词僻义 | date是一种什么水果?
今天小站来和各位聊聊date这个熟词.说起date,这可是工作生活中一个极其常用的单词.无论是为下次工作会议定个日期,还是为即将举行的婚礼定个日子,都可以用"fix/set a date f ...
- java datetime和date_Java 8时间接口localDateTime和Date的对比
java8提供了新的时间接口.相对Date,Calendar,个人感觉最大的好处是对时间操作的学习成本很低,比Calendar低. 1. LocalDate,LocalTime,LocalDateTi ...
- python获取系统当前时间并转utc时间为绝对秒数_用Python将datetime.date转换为UTC时间戳...
如果d = date(2011, 1, 1)在世界协调时:>>> from datetime import datetime, date>>> import cal ...
- php 的时间戳时区,[php]php时间戳当中关于时区的问题
PHP_VERSION = 5.5.11 话说php函数 time() 的起始时间戳是从:GMT 1970-01-01 00:00:00 开始算起的 写了点测试代码: $gmt1 = strtotim ...
- Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转
本文收录在猪哥GitHub:https://github.com/pig6/Java 中,本项目收集一线大厂面试.实战.Java学习路线等. 本文目前提供:LocalDateTime获取时间戳(毫秒/ ...
- python中的date的含义_浅谈python中的dateime
原文链接:http://www.cnblogs.com/lhj588/archive/2012/04/23/2466653.html Python提供了多个内置模块用于操作日期时间,像calendar ...
- java 时区 列表_浅解 JAVA与时区
时区转换 主要介绍一下 Java 时区转换相关的一些概念,和转换示例. 由于夏令时的存在,应该通过Java 或者 DB 提供的方法来转换. JAVA 时间的时区转换 Java Date 支持 UTC ...
最新文章
- 开始启动OPNsense的汉化工作
- Android 之 Fagment 完全解析
- 在Windows IoT上使用网络摄像头
- 02-Armv8-A Instruction Set Architecture
- CentOS中设置ip地址等信息
- 计算机应用技术多久退休,Windows 7正式退休 这些解决办法你必须了解
- 使用nodejs代码在SAP C4C里创建Individual customer
- 2.4寸液晶控制方法
- 【计算机网络】TCP/IP 模型与OSI参考模型的比较
- 去除EditPlus自动备份功能. bak
- Linux 添加环境变量
- 项目评测(共27组)
- 在配置使用Membership或其他的Providers的ASP.NET2.0时一定要设置applicationName属性
- 小学计算机集体备课活动记录,信息技术学科组集体备课活动记录.doc
- 网吧电脑怎么学一级计算机,如何关掉网吧电脑上的防火墙系统-电脑自学网
- 守望先锋--颜色参数
- html5如何获取音频资源6,【已解决】如何从喜马拉雅的页面中获取到mp3音频文件...
- Kali Linux渗透测试——无线渗透
- 2022年全球市场旋转压片机总体规模、主要生产商、主要地区、产品和应用细分研究报告
- windows 命令提示符 修改/prompt
热门文章
- 更换VS.NET 2010的皮肤 [Visual Studio Blog]
- 补一点COM的知识,有关_com_ptr_t
- VMware运行时“内部错误”的解决方法
- java 迭代器只遍历了一次的解决方案
- Vmware 安装CentOS7时连不上网问题的解决
- Java获取异常堆栈信息
- 解决RabbitMQ消息丢失与重复消费问题
- LoadRunner Controller集合点策略灰色问题 解决
- 无法加载JNI共享库(JDK)
- .prop()与.attr()