关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换

简介: 关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换

工作时遇到前端传的时间格式是"2023-12-3 17:41:52",和"2023-1-1 17:41:52"但是我想要的是"2023-12-03 17:41:52"和"2023-01-01 17:41:52"。下面给大家分享几个解决方法


方法一:


找前端!让他改!使劲改!!!


方法二:


  使用Java 8中的DateTimeFormatter的parse()format()方法以及LocalDateTimeLocalDateLocalTime来实现。下面这一行代码完美解决

DateTimeFormatter.ofPattern("yyyy[-]M[-]d H:mm:ss").parse("2023-11-1 17:41:52", LocalDateTime::from).format(DateTimeFormatter.ofPattern("yyyy-MM-dd H:mm:ss"))


演示:

package org.example;
 
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
 
/**
 * @author 不爱吃鱼
 * @date 2023/11/2 9:25
 */
public class Main {
    public static void main(String[] args) {
        //时间转换
        String a = "2023-1-1 17:41:52";
        String b = "2023-12-3 17:41:52";
        System.out.println("a = "+Time(a)+"\n"+"b = "+Time(b));
    }
 
    public static String Time(String time){
        return  DateTimeFormatter.ofPattern("yyyy[-]M[-]d H:mm:ss").parse(time, LocalDateTime::from).format(DateTimeFormatter.ofPattern("yyyy-MM-dd H:mm:ss"));
    }
}


打印结果:


这行代码首先定义了一个DateTimeFormatter,使用"yyyy[-]M[-]d H:mm:ss"的格式,其中方括号[-]表示可选的分隔符,用于匹配不同的日期字符串格式。


然后,使用parse()方法将时间字符串"2023-12-3 17:41:52"解析为LocalDateTime对象。这里使用了一个方法引用LocalDateTime::from,从解析的结果中获取一个LocalDateTime对象。


   最后,使用format()方法将LocalDateTime对象格式化为指定的时间格式。这会将LocalDateTime对象转换为字符串,使用DateTimeFormatter.ofPattern("yyyy-MM-dd H:mm:ss")指定了输出的时间格式。


这样就可以将不同格式的时间字符串转换为统一的输出格式

目录
相关文章
2021-10-10T16:00:00.000Z: expected format yyyy-MM-dd HH:mm:ss 时间戳格式化
2021-10-10T16:00:00.000Z: expected format yyyy-MM-dd HH:mm:ss 时间戳格式化
162 0
|
6月前
yyyy-MM-dd'T'HH:mm:ss.SSSZZ和yyyy-MM-dd'T'HH:mm:ss.SSSXXX之间的区别
【5月更文挑战第7天】yyyy-MM-dd'T'HH:mm:ss.SSSZZ和yyyy-MM-dd'T'HH:mm:ss.SSSXXX之间的区别
278 0
|
6月前
|
JavaScript
Vue 获取当前日期(时间,格式为YYYY-MM-DD HH:mm:ss)
Vue 获取当前日期(时间,格式为YYYY-MM-DD HH:mm:ss)
724 0
|
6月前
|
前端开发 Java
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
458 0
|
6月前
joda time将10位或者13位时间戳转为标准日期格式: yyyy-MM-dd HH:mm:ss
joda time将10位或者13位时间戳转为标准日期格式: yyyy-MM-dd HH:mm:ss
102 0
yyyy-MM-dd和YYYY-MM-dd不是一样的吗?
最近的一个项目中遇到了一个非常有趣的bug,原来yyyy-MM-dd和YYYY-MM-dd是有差异的,具体有什么不同呢?
|
JavaScript 前端开发 数据库
如何将当前时间为:Sun Jan 08 16:47:00 CST 2023格式转换成“yyyy-MM-dd HH:mm:ss“
如何将当前时间为:Sun Jan 08 16:47:00 CST 2023格式转换成“yyyy-MM-dd HH:mm:ss“
193 0
|
NoSQL Java Redis
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
458 0
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
|
Java
LocalDateTime序列化成yyyy-MM-dd HH:mm
LocalDateTime序列化成yyyy-MM-dd HH:mm
239 0
|
Java
Java时间格式转换yyyyMMddHHmmss--yyyy-MM-dd HH:mm:ss
Java时间格式转换yyyyMMddHHmmss--yyyy-MM-dd HH:mm:ss
220 0