美文网首页springboot
关于java中英文月份日期格式的补充

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

作者: 扎心的_老铁 | 来源:发表于2020-02-25 17:20 被阅读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)详解

    相关文章

      网友评论

        本文标题:关于java中英文月份日期格式的补充

        本文链接:https://www.haomeiwen.com/subject/emrxchtx.html