java中常见的日期和时间格式转换

12 篇文章 3 订阅
11 篇文章 1 订阅

日期和时间格式由“日期和时间模式字符串”指定。在“日期和时间模式字符串”中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串
简单来讲,这些A~Z,a~z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。

日期和时间模式字符串对应表(注意大小写,代表的含义是不同的):


yyyy:
MM:
dd:
hh:小时1~12小时制(1-12)
HH:24小时制(0-23)
mm:
ss:
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:  表示时区


在项目中经常遇到时间类型的转化,这里简单记录一下我经常遇到的时间类型的转化:

从数据库调取时间类型并转换为String类型

首先将数据库表中的createTime字段设置为dateTime类型,然后将项目代码中对应的属性设置为String类型,这样输出出来的相应字段就是这样的:

2021-01-01 13:15:56

如果感觉这样的时间格式还是不够直观,那么可以将上边的时间格式转换为带有中文的时间格式:

 实现代码:

public static void main(String[] args) throws Exception{
    Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-01-01 13:15:56");
    System.out.println(date);
    String now = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒").format(date);
    System.out.println(now);
}

将会输出:

2021-01-01T05:15:56.000+00:00
2021年01月01日13时15分56秒

其实上边的转换就是先将"2021-01-01 13:15:56"转换为"2021-01-01T05:15:56.000+00:00",然后再转换为"2021年01月01日13时15分56秒"

获取当前日期

需求:获取当前日期(字符串类型)且格式为yyyy-MM-dd HH:mm:ss

实现代码:

import java.text.SimpleDateFormat;
import java.util.Date;

String pushtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
System.out.println(pushtime);

将会输出:

2020-08-01 15:12:07

暂时就想到这些,还有别的转换方式在项目中遇到再回来补充。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆〇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值