从零单排Java 8(2) —— Timestamp、String互转

简介

image.png

Timestamp是Java中少数遗留日期时间对象之一。bash

本文咱们将讨论如何进行 Timestamp和String的互转ui

因为Timestamp依赖于Java专有格式,咱们能够看看,在Java8中,如何更高效、快捷的转换。spa

String 转 Timestamp

标准格式

解析一个最简单的方法,能够用Timestamp的valueOf 方法,就能够知足:code

Timestamp.valueOf("2018-11-12 01:02:03.123456789")

复制代码

当咱们的String采用JDBC时间戳格式时- yyyy-m [m] -d [d] hh:mm:ss [.f ...] -,它会相对简单一些。orm

具体的格式请看下面表格cdn

格式 描述 示例
yyyy 表示年份,而且必须有四位数字 2019
m[m] 表示月份,必须有一个或两个数字(从1到12) 1,11
d[d] 表示天数,必须有一个或两个数字(从1到31) 1,31
hh 表明一天中的小时,容许的值从0到23 0,23
mm 分钟,容许的值从0到59 0,59
ss 秒,容许的值从0到59 0,59
[.f…] 小数秒(毫微秒)精度,所以容许的值为0到999999999 123456789

其余格式

如今,若是它不是JDBC时间戳格式,该如何解决, 幸运的是, valueOf 也能够接收参数为 LocalDateTime 的实例。对象

**这意味着咱们能够采用任何格式的日期,**咱们只须要先将String转换为LocalDateTime 就能够了:blog

String pattern = "MMM dd, yyyy HH:mm:ss.SSSSSSSS";
String timestampAsString = "Apr 09, 2019 13:02:56.12345678";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
LocalDateTime localDateTime = LocalDateTime.from(formatter.parse(timestampAsString));

复制代码

而后咱们能够使用valueOfstring

Timestamp timestamp = Timestamp.valueOf(localDateTime);
assertEquals("2019-04-09 13:02:56.12345678", timestamp.toString());

复制代码

请注意, 与Date对象不一样,Timestamp对象可以存储毫微秒。it

相关文章
相关标签/搜索