日期格式化 yyyy-mm-dd 与 YYYY-MM-DD 大小写区别

前言:最近开发遇到日期格式化的问题,发现用 hh:mm:ss 格式化出来的时间是12小时制的。

就想看看这个格式化字符串的大小写 有什么区别,下面是一些示例,(dateToFormat中是封装的 momentjs 库中formate方法)

const text = '2024-04-25 12:30:45'
console.log('YYYY-MM-DD HH:MM:SS', dateToFormat(text, 'YYYY-MM-DD HH:MM:SS'));
console.log('yyyy-mm-dd hh:mm:ss', dateToFormat(text, 'yyyy-mm-dd hh:mm:ss'));
console.log('yyyy-MM-dd HH:mm:ss', dateToFormat(text, 'yyyy-MM-dd HH:mm:ss'));
console.log('yyyy-MM-dd hh:mm:SS', dateToFormat(text, 'yyyy-MM-dd hh:mm:SS'));
console.log('yyyy-MM-DD HH:mm:ss', dateToFormat(text, 'yyyy-MM-DD HH:mm:ss'));

结果:

在这里插入图片描述
可以看到,大小写是会对格式化结果产生影响的。后续查阅资料,总结出以下规则:

以下主要针对moment.js 库中的 formate 方法。
参考官方文档:
https://momentjs.com/docs/#/displaying/

YYYY 与 yyyy

这里前端用momentjs 的方法 实验看起来没啥区别,但是在JAVA中是区分大小写的。

不过在momentjs库中,只有以下这些表示格式的,没有 yyyy的格式,YYYY就表示我们正常理解的年份(不过好像yyyy 也能用,目前没发现啥问题,不过还建议是用官方的YYYY比较好)
在这里插入图片描述



这里补充一下JAVA的解释:

  • yyyy: 格里历(公历),表示当天所在的年
  • YYYY:代表是week in which year(JDK7之后引入的概念),为 ISO 周日历,意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的YYYY就是下一年。

所以一般JAVA开发中还是用yyyy-MM-dd来做日期格式化



不同位数有啥区别呢?

可以看到 示例中可以用 YY 或者 YYYY
分别表示简写和全写,比如
YYYY / YY 分别显示为 2024 / 24

MM 与 mm

这里的大小写是为了区分 日期的 “月份” 与 时间的 “分钟” .

MMMM/MMM/MM/M 显示为 四月/4月/04/4
(4个M显示全称,3个M显示缩写,中文显示是汉字四和数字4,英文就是January和Jan)
在这里插入图片描述

全部示例:
在这里插入图片描述

分钟 只有 m / mm, 位数用于展示前导0的。

在这里插入图片描述

DD 与 dd

momentjs 中:
DD 是 表示月份中的第几天数
DDD 则 表示 一年中的第几天
dd 表示的是周中的天数,比如周几

具体如下图:
在这里插入图片描述

HH 与 hh

这里大小写是为了区分12小时制和24小时制
HH 表示24小时制
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用SimpleDateFormat类,您可以编写以下代码以获得当前日期的yyyy-MM-dd格式:SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String date = dateFormat.format(new Date()); System.out.println(date); ### 回答2: 在Java中,我们可以使用`java.util.Date`和`java.text.SimpleDateFormat`类来打印当前日期的yyyy-MM-dd格式。 首先,我们需要导入相应的类: ```java import java.util.Date; import java.text.SimpleDateFormat; ``` 然后,我们可以使用以下代码来获取当前日期并将其格式化: ```java // 创建一个Date对象,表示当前日期和时间 Date currentDate = new Date(); // 创建一个SimpleDateFormat对象,指定日期格式为yyyy-MM-dd SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 使用SimpleDateFormat对象将日期格式化为指定格式的字符串 String formattedDate = dateFormat.format(currentDate); // 打印格式化后的日期 System.out.println(formattedDate); ``` 运行上述代码,输出的结果将是当前日期的yyyy-MM-dd格式。 请注意,在使用SimpleDateFormat类时,需要注意日期格式的大小写字母的具体含义。例如,"yyyy"表示4位数的年份,"MM"表示2位数的月份,"dd"表示2位数的日期。 ### 回答3: 要在Java中打印当前日期,我们可以使用`SimpleDateFormat`类来格式化日期,并使用`java.util.Date`类来获取当前日期。 首先,我们需要导入`SimpleDateFormat`类和`java.util.Date`类。代码如下: ``` import java.text.SimpleDateFormat; import java.util.Date; ``` 接下来,我们创建一个`SimpleDateFormat`对象并定义日期的格式。在本例中,我们需要的格式是"yyyy-MM-dd"。代码如下: ``` SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ``` 然后,我们可以使用`Date`类中的`toString()`方法来获取当前日期,并使用`SimpleDateFormat`对象的`format()`方法来格式化日期。代码如下: ``` Date date = new Date(); String formattedDate = sdf.format(date); ``` 最后,我们可以使用`System.out.println()`方法来打印格式化后的日期。代码如下: ``` System.out.println(formattedDate); ``` 综合起来,完整的代码如下: ```java import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); String formattedDate = sdf.format(date); System.out.println(formattedDate); } } ``` 当运行这段代码时,它会打印出当前日期,格式为"yyyy-MM-dd"。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值