springboot

关于java中英文月份日期格式的补充

2020-02-25  本文已影响0人  扎心的_老铁

最近项目中遇到了多语言适配日期的问题,在这里记录一下

首先,问题是要讲一个时间戳转换为25/Feb/2020和02/20这种格式

开始想着使用SimpleDateFormat来格式化,可是不理想,没法实现英文月份和短年份(可能是我使用的姿势不对),没办法只能使用农村包围城市的办法,分别拿到年月日的字符串再拼接出来。

本来开始使用的Date.getYear()类似的方法但是提示过时了,后来转为使用Calendar

这里我使用Calendar和String.format()这两个方法结合:


//获取Calendar对象

Calendar instance = Calendar.getInstance(Locale.US);

long time = System.currentTimeMillis();

//将时间戳传给Calendar

instance.setTimeInMillis(time);

//获取年份

System.out.println(instance.get(Calendar.YEAR));//2020

//获取日期

System.out.println(instance.get(Calendar.DAY_OF_MONTH));//25

//获取月份

System.out.println(instance.get(Calendar.MONTH));//2

获取到了年月日的字符串,就可以随意拼接啦,也不会提示方法过期,美滋滋。


可是问题又来了,无法将月份变成英文版,也无法获取到短年份字符串,当当当当,所以又使用String.format()函数。

说明

try {

    Date date = sdf.parse("2020-02-25");

    System.out.println("日期-"+String.format(Locale.US,"%td",date));//25

    System.out.println("月份-"+String.format(Locale.US,"%tb",date));//Feb

    System.out.println("年份-"+String.format(Locale.US,"%ty",date));//20年

    System.out.println("年份-"+String.format(Locale.US,"%tY",date));//2020年     System.out.println(String.format(Locale.US,"%tD%n",date));//02/25/20

     System.out.println(String.format(Locale.US,"%tF%n",date));//2020-02-25

} catch (ParseException e) {

    e.printStackTrace();

}

这样就得到了我们想要的字符串了,可以随意拼接啦。

over.

参考链接

java的日历类(Calendar)详解

上一篇 下一篇

猜你喜欢

热点阅读