JAVA 将几种常见的日期格式转为yyyy年mm月dd日

废话不多说,贴代码

timeFormatHandling() 函数
    /**将以下几种日期格式转为yyyy年mm月dd日
     *  1. yyyy/mm/dd hh:mm:ss
     *  2. yyyy/m/d h:mm:ss
     *  3. yyyy/m/dd h:mm:ss
     *  4. yyyymmdd
     *  5. yyyy/mm/dd
     *  6. yyyy/m/d
     *  7. yyyy/m/dd
     *  8.excel格式
     *  @param date 输入日期
     *  @return 返回转换后的格式*/
    public static String timeFormatHandling(String date){
        //System.out.println("输入的日期为:"+date);
        if ("".equals(date) || date == null) return "时间为空";//处理空指针异常
        if (date.length() < 5) return "时间格式错误";//输入了奇怪的东西,无法识别
        if (date.charAt(4) == '年') return date;//如果输入的格式正确 直接返回
        if (date.length() == 19 || date.length() == 10) return date.substring(0,4)+"年"+date.substring(5,7)+"月"+date.substring(8,10)+"日";
        else if (date.length() == 17 || date.length() == 9 && date.charAt(4) == '/')return date.substring(0,4)+"年0"+date.charAt(5)+"月"+date.substring(7,9)+"日";
        else if (date.length() == 16 || date.length() == 8 && date.charAt(4) == '/') return date.substring(0,4)+"年0"+date.charAt(5)+"月0"+date.charAt(7)+"日";
        else if(date.length() == 8 && date.charAt(4) != '/')return  date.substring(0,4)+"年"+date.substring(4,6)+"月"+date.substring(6)+"日";
        else if(date.length() == 5)return digitalToDate(date);//excel格式
        return "时间格式错误";//无法识别
    }
digitalToDate()函数
/**将excel中的数字转为日期
 * @param number excel中的数字
 * @return 日期
 * */
    public static String digitalToDate(String number){
        Calendar calendar = new GregorianCalendar(1900,0,-1);
        int intDay = Integer.parseInt(number);
        Date dd = DateUtils.addDays(calendar.getTime(),intDay);
        //对日期格式化操作
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        return simpleDateFormat.format(dd);
    }
运行结果
输入输出
yyyy/mm/dd hh:mm:ssyyyy年mm月dd日
yyyy/m/d h:mm:ssyyyy年0m月0d日
yyyy/m/dd h:mm:ssyyyy年0m月dd日
yyyymmddyyyy年mm月dd日
yyyy/mm/ddyyyy年mm月dd日
yyyy/m/dyyyy年0m月0d日
excel格式yyyy年mm月dd日

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值