Java英文日期格式转换yyyy-MM-dd格式

我们在后端的开发过程中会经常跟日期相关的类型打交道,不过我们大多数在开发过程中遇到的格式都是基本的 年-月-日(yyyy-MM-dd)格式。当然,这种格式的日期我们都可以用Java自带的SimpleDateFormat类自带的转换方法来进行转换以达到我们平时开发所要达成的目的。不过在个人开发中,我所见到过的格式还有另外一种,英文日期格式,如下图。
在这里插入图片描述

第一次遇到这种陌生的日期格式时可能我们也会依然想要用经典的方法尝试一下,如下图。
在这里插入图片描述

然后整个人可能都会懵逼掉。
在这里插入图片描述

报错的行就是调用parse方法的那行,报错原因就是这个英文格式的日期不是我们所填入的yyyy-MM-dd格式导致无法解析,这里先把这个英文的格式放出来:EEE MMM dd HH:mm:ss z yyyy
然后我们将此格式填入到SimpleDateFormat的参数中,但是这里需要注意一下,这里在新建SimpleDateFormat对象时需要指定日期格式。如下图,第一个构造器是平时使用的,它里面会调用第二个构造器,不过传入的参数是Locale.Category.FORMAT,而这个FORMAT参数是不支持英文日期转换的。
在这里插入图片描述

改造过后的SimpleDateFormat构造器参数如下图。
在这里插入图片描述

最终代码如下(放在main方法中可以自行编辑测试):

String str = "Wed Apr 22 05:12:10 CST 2020";
        SimpleDateFormat sdf1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
        Date parse = null;
        try {
            parse = sdf1.parse(str);
            System.out.println(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(sdf2.format(parse));

输出内容如下:
在这里插入图片描述

也就是先将String类型的英文格式日期转成对应的Date类型对象,然后再将这个对象用普通的转换方法转换即可。
仅限于String类型的英文日期,如果是Date类型的英文日期可尝试直接使用new SimpleDateFormat(“yyyy-MM-dd”)转换。

该文章仅供参考,如有错误或缺漏欢迎各位指点迷津。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用Java中的SimpleDateFormat类来将时间戳转换日期格式。具体代码如下: ```java long timestamp = 162826440000L; // 时间戳,单位为毫秒 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 定义日期格式 String date = sdf.format(new Date(timestamp)); // 将时间戳转换日期格式 System.out.println(date); // 输出:2021-08-06 ``` 其中,`SimpleDateFormat`类的构造方法中传入的字符串参数表示日期格式,具体含义如下: - `yyyy`:年份,如2021 - `MM`:月份,如08 - `dd`:日期,如06 通过调用`format()`方法,将时间戳转换为指定的日期格式。最后输出的结果为`2021-08-06`。 ### 回答2: Java中时间戳是以毫秒为单位的长整型数字,表示自1970年1月1日00:00:00GMT以来的毫秒数。因为时间戳底层是一个整型数字,不便于阅读和使用,所以需要将其转换日期格式Java提供了将时间戳转换日期格式的方法,可以使用SimpleDateFormat类来实现。以下是将时间戳转换日期格式的示例代码: ```java long timeStamp = 1611023113000L; // 时间戳 Date date = new Date(timeStamp); // 将时间戳转换成Date类型 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 指定日期格式 String dateStr = sdf.format(date); // 将Date类型转换成指定格式的字符串 System.out.println(dateStr); // 输出转换后的日期字符串 ``` 上面的代码首先将时间戳转换成Date类型,然后通过SimpleDateFormat指定日期格式,最后调用format方法将Date类型转换成指定格式的字符串。 在指定日期格式的字符串中,yyyy表示年份,MM表示月份,dd表示天数。如果需要包含时间信息,还可以加入hh(小时)、mm(分钟)和ss(秒钟)等时间字段。 在转换时间戳时,还需要注意时间戳的单位是毫秒,Date的构造函数参数也是毫秒。如果时间戳是秒级别的,需要将其乘以1000转成毫秒级别。 使用以上代码可以方便地将时间戳转换成指定格式日期字符串,便于我们处理和显示时间信息。 ### 回答3: Java时间戳是指从1970年1月1日00: 00: 00 UTC(协调世界时)开始计算的秒数,这意味着它代表了从该时间以来经过的秒数。简言之,它是一种以秒为单位的时间表示形式。通常,Java的时间戳是一个长整型数字。 要将Java时间戳转换日期格式,我们需要使用Java提供的一些内置方法和类。 首先,我们需要使用java.util.Date类。这个类包含了许多方法,可用于将时间戳转换日期格式。我们可以使用Date(long time)构造函数将时间戳转换日期对象。 然后,我们可以使用SimpleDateFormat类来格式日期。SimpleDateFormat类可以提供各种格式化选项,包括日、月、年、小时、分钟和秒等。 下面是Java时间戳转换日期格式yyyy-mm-dd的实现代码: ```java import java.text.SimpleDateFormat; import java.util.Date; public class TimeStampConversion { public static void main(String[] args) { long timeStamp = System.currentTimeMillis(); Date date = new Date(timeStamp); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = dateFormat.format(date); System.out.println("Formatted date is " + formattedDate); } } ``` 在上面的代码中,我们首先获取当前时间戳,然后创建一个Date对象。接下来,我们使用SimpleDateFormat类格式日期对象,该类使用"yyyy-MM-dd"格式字符串设置日期格式。最后,我们打印格式化后的日期字符串。 这里需要注意的一点是,我们使用"yyyy-MM-dd"格式字符串设置日期格式。这意味着我们将得到一个形如“2022-05-20”的日期格式字符串。如果您想使用不同的日期格式,请调整SimpleDateFormat的模式字符串。 Java的时间戳转换日期格式是一个非常基础的问题,但在Java开发中使用频率非常高。通过简单的代码,我们可以将时间戳转换为可读性较好的日期格式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值