localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化[通俗易懂]

localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化[通俗易懂]一前言二时间戳与LocalDateTime互转2.1LocalDateTime转时间戳方式一这边值得一提的是在中国的时区偏移是8小时,本次示例转的时间戳是秒级别,得到的值是一个long值;知识追寻者这边是当前时间,故读者得到的结果与知识追寻者得到的结果不一致;读者可以使用站长工具进行测试校验@TestpublicvoidlocalTimeTest1(){//获得当前时间Local…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一 前言

二 时间戳与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);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188771.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js解析PSD文件,Java处理psd文件智能图层

    js解析PSD文件,Java处理psd文件智能图层现在市面上很多的webapp都提供模板功能,所谓模板就是一系列元素的集合,模板的制作一般都需要设计师先在Photoshop等软件中制作好设计好,然后再一定的方式来还原设计稿,要么需要编码要么需要在某些应用中按照设计稿重画设计生成模板数据,都还是比较麻烦的,我们能不能通过psd文件直接生成模板呢?要做到这点我们就需要解析psd文件,而psd文件是Photoshop软件的涉及保存文件,浏览器并不能直接识别,所幸的是psd.js赋予了我们这样的能力。foxpsd是一个用来解析PhotoShop的PSD文件的

    2022年6月7日
    191
  • centos7.4安装docker_pythondocker

    centos7.4安装docker_pythondocker前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

    2022年7月29日
    12
  • 360浏览器怎么设置截图快捷键_谷歌浏览器截图快捷键ctrl加什么

    360浏览器怎么设置截图快捷键_谷歌浏览器截图快捷键ctrl加什么360截图支持网页截图,前提是你要打开360浏览器,打开后,不管是什么界面都可以截图。一旦关闭,便不能使用。但是默认的360快捷键(ctrl+shift+X)可能与系统其他功能快捷键冲突,所以本文主

    2022年8月5日
    9
  • 教你玩转CSDN博客[通俗易懂]

    教你玩转CSDN博客[通俗易懂]我在CSDN博客可以做什么呢?CSDN博客是一个专业IT技术发表的平台。在这里,你可以阅读技术大佬的博文,为他们点赞,评论,收藏;在这里,你也可以发布自己的博文,你可以发布技术分享、面试技巧、程序人生,也可以发布认真或有趣的交流与分享。我该怎么发布文章?点击创作中心即可撰写博文,但是文章内容不得违反法律法规及政策规定哦!原创的文章是自己学习并整理出的结果,所以,如果是翻译或转载的文章,征求原作者同意转载后,发布时点击转载按钮,并在文章显要位置注明原作出处哦。博主在其他平台撰写过10篇以上的

    2022年5月12日
    40
  • Oracle数据库安装教程–Oracle19c DataBase

    Oracle数据库安装教程–Oracle19c DataBase首先,下载Oracle安装包的压缩文件访问Oracle官网(https://www.oracle.com/index.html)下的数据库下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html找到OracleDatabase19c这里选择Win1064位下载……

    2022年7月13日
    22
  • 【路由】静态路由「建议收藏」

    【路由】静态路由「建议收藏」静态路由1、静态路由的概念1.1、概念1.2、注意事项1.3、弊端2、静态路由的配置须知2.1、出接口为BMA类型2.2、出接口为P2P类型2.3、出接口为NBMA类型3、默认路由3.1、概念3.2、实验场景3.3、适用场景3.4、注意事项4、浮动静态路由4.1、静态路由负载均衡的实验场景4.2、静态路由负载均衡讲解4.3、静态路由负载分担的优点4.4、浮动静态路由的原理4.5、浮动静态路由的应用场景1、静态路由的概念1.1、概念1.2、注意事项1.3、弊端2、静态路由的配置须知2.1、出接口为

    2022年9月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号