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

部署运行你感兴趣的模型镜像

简介

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

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

由于Timestamp依赖于Java专有格式,我们可以看看,在Java8中,如何更高效、快捷的转换。

String 转 Timestamp

标准格式

解析一个最简单的方法,可以用Timestamp的valueOf 方法,就可以满足:


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

复制代码

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

具体的格式请看下面表格

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

其他格式

现在,如果它不是JDBC时间戳格式,该如何解决, 幸运的是, valueOf 也可以接收参数为 LocalDateTime 的实例。

**这意味着我们可以采用任何格式的日期,**我们只需要先将String转换为LocalDateTime 就可以了:


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));

复制代码

然后我们可以使用valueOf


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

复制代码

请注意, 与Date对象不同,Timestamp对象能够存储毫微秒。

您可能感兴趣的与本文相关的镜像

AutoGPT

AutoGPT

AI应用

AutoGPT于2023年3月30日由游戏公司Significant Gravitas Ltd.的创始人Toran Bruce Richards发布,AutoGPT是一个AI agent(智能体),也是开源的应用程序,结合了GPT-4和GPT-3.5技术,给定自然语言的目标,它将尝试通过将其分解成子任务,并在自动循环中使用互联网和其他工具来实现这一目标

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值