2.格式化日期字符串为标准日期,SimpleDateFormat的使用

news/2024/7/21 5:46:58 标签: java, date, excel, exception

目录

(1)方法实现

(2)方法测试


在项目中,经常遇到读取excel数据的需求,excel中通常都包含有日期这一项内容。而日期格式不一,常见的有“2021年12月12日"、“2021-11-11”、“2021/11/22”这3种格式。这里提供一个公共方法,将日期格式化为“yyyy-MM-dd"标准格式:

(1)功能实现

java">   /**
     * 解析日期字符串
     * 描述:格式化日期字符串dateStr为yyyy-MM-dd形式
     * 如果格式化失败,则日期格式有误
     *
     * @param dateStr 日期字符串
     * @return
     */
    public static String parseYearMonthDayDate(String dateStr) {
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy/MM/dd");
        String yearMonthDay = null;
        Date date = null;
        try {
            date = sdf1.parse(dateStr);
            yearMonthDay = sdf1.format(date);
        } catch (ParseException e1) {
            try {
                date = sdf2.parse(dateStr);
                yearMonthDay = sdf1.format(date);
            } catch (ParseException e2) {
                try {
                    date = sdf3.parse(dateStr);
                    yearMonthDay = sdf1.format(date);
                } catch (ParseException e3) {
                    throw new Exception("日期有误");
                }
            }
        } catch (NullPointerException e) {
            throw new Exception("日期为空");
        }
        return yearMonthDay;
    }

本方法利用异常执行机制实现日期的格式化。

(2)功能测试

java"> public static void main(String[] args){
        String s = parseYearMonthDayDate("2021年7月7日"); 
        //"2021年7月7日" 或 "2021年07月07日"都可以解析为标准格式
        String s2 = parseYearMonthDayDate("2021/7/7");
        String s3 = parseYearMonthDayDate("2021-7-7");
        System.out.println(s);
        System.out.println(s2);
        System.out.println(s3);
    }


http://www.niftyadmin.cn/n/528479.html

相关文章

同步/异步、阻塞/非阻塞的理解

学编程的时间也不短了,一直以后无论在哪个方面都没有建树,都是浅尝辄止,好在现在已经有了目标,决定在Android上有所成就。本来是要做一款android上的twitter客户端,但是twigee的作者告诉我说他要要5月底把twigee开源&a…

关于linux的学习推荐大家先看看这两篇文章

关于linux的学习推荐大家先看看这两篇文章:http://www.cnblogs.com/michaelpeng/archive/2010/12/16/1908230.htmlhttp://www.cnblogs.com/feisky/archive/2009/12/06/1618163.html

8.SpringBoot的yml多环境配置3种方法

目录 方式一:多个yml文件 步骤一、创建多个配置文件 步骤二、applicaiton.yml中指定配置 方式二: 单个yml文件 方式三:在pom.xml中指定环境配置 步骤一、创建多个配置文件 步骤二、在application.yml中添加多环境配置属性 步骤三、在pom…

RNN(Recurrent Neural Networks)公式推导和实现

RNN(Recurrent Neural Networks)公式推导和实现 http://x-algo.cn/index.php/2016/04/25/rnn-recurrent-neural-networks-derivation-and-implementation/2016-04-25 分类:Deep Learning / NLP / RNN 阅读(6997) 评论(7) 本文主要参考wildml的博客所写,所…

细说Cache

什么是缓存? Web 应用程序通常都是被多个用户访问。一个Web站点可能存在一个“重量级”的加载,它能够使得站点在访问的时候,拖慢整个服务器。当站点被大量用户同时访问的时候,访问速度缓慢是大部分网站共同存在的问题。为了解决这…

3.docker下载安装配置gitlab、遇到的问题全记录

1.拉取镜像 docker pull gitlab/gitlab-ce 解释:gitlab-ce为稳定版本,如果没指定版本则默认pull最新latest版本。 2.运行镜像 docker run --detach --hostname localhost --publish 443:443 --publish 9999:80 --publish 222:22 --name gitlab --res…

文本分类需要CNN?No!fastText完美解决你的需求(前篇)

http://blog.csdn.net/weixin_36604953/article/details/78195462?locationNum8&fps1 文本分类需要CNN?No!fastText完美解决你的需求(前篇) fastText是个啥?简单一点说,就是一种可以得到和深度学习结果…

毕业半年,点滴在心中

转载请注明出处:http://blog.csdn.net/qinjuning 先借用“幸福来点名的模式”给大家介绍我目前的现状 : 毕业院校 :武汉一所二本 工作地方 :上海松江 工作方向 :从事Android手机开发 公司介绍 :从事手机、路…