处理同一个字段,多种日期格式

刚参加工作的时候遇到这么一种情况,有一个字段是存储的日期,但是类型是varchar2

问题是里面的日期格式有yyyy-MM-dd和dd-MMM-yy和long型,后来灵机一动想到用异常处理机制来处理这三种情况。但是最终由于异常处理很占用内存效率很差,被leader告知不要用,偶然翻到了就记录下来吧。

 1 package com.test.date;
 2
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Date;
 6
 7 public class SdfTest {
 8     public static void main(String[] args) throws ParseException {
 9         //String aaa = "2013-8-5";
10         //String aaa = "1312332123";
11         String aaa = "25-Mar-2010";
12         Date a;
13         try {
14             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
15             a = sdf.parse(aaa);
16         } catch (ParseException e) {
17             try {
18                 SimpleDateFormat sdfs = new SimpleDateFormat("dd-MMM-yy");
19                 a = sdfs.parse(aaa);
20             } catch (ParseException m) {
21                 a = new Date(Long.parseLong(aaa));
22             }
23
24         }
25         SimpleDateFormat sm =new SimpleDateFormat("dd-MM-yyyy");
26         System.out.println(sm.format(a));
27
28     }
29 }

时间: 2024-10-20 00:43:39

处理同一个字段,多种日期格式的相关文章

正则表达式验证日期(多种日期格式)——转载

1.概述 首先需要说明的一点,无论是 Winform ,还是 Webform ,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好. 前几天在 CSDN 多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正. 日期正则一般是对格式有要求,且数据不是直接由用户输入时使用.因应用场景的不同,写出的正则也不同,复杂程度也自然不同.正则的书写需要根据具体情况具体分析,一个基本原则就 是:只写合适的,不写复杂

多种日期格式转为DateTime类型

private string[] dateFormat = { "dd/MM/yyyy", "d/M/yyyy", "dd/MM/yyyy HH:mm:ss", "dd/MM/yyyy HH:m:s" }; DateTime.ParseExact(sStartDate,dateFormat,DateTimeFormatInfo.InvariantInfo,DateTimeStyles.AllowWhiteSpaces);

SQL语句优化系列四(Oracle数据库日期格式转换)

Oracle数据库日期格式转换 select sysdate from dual select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') as mydate from dual select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as mydate from dual select to_number(to_char(sysdate,'yyyymmddhh24miss')) as mydate from dual

oracle日期格式转换 to_date()

与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应. 如;to_date(''2004-11-27 13:34:43'', ''yyyy-mm-dd hh24:mi:ss'') 将得到具体的时间 多种日期格式: YYYY:四位表示的年份 YYY,YY,Y:年份

利用SQL模糊匹配来验证字段是否是日期格式

最近需要验证数据仓库某个字段是否转化成某种日期格式,比如时间戳格式 '2016-05-03 23:21:35.0', 但是DB2不支持REGEXP_LIKE(匹配)函数,所以需要重新想其他办法. 最后使用了最常规的like来模糊匹配,虽然比不上正则匹配那么精准,但也够用了. 思路: 一个下划线代表一个字符,那'2016-05-03 23:21:35.0'可以表示成'____-__-__-__.__.__.______'. 当然这种办法比较笨,不能识别是数字还是字母还是字符,当然更好的办法是编写U

Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法

1.错误原因: date类型不能包含秒以后的精度. 如日期:2010-01-01 20:02:20.0 解决方法:将日期秒以后的精度去除, to_date(substr(INVOICE_DATE,1,10),'yyyy-mm-dd')如日期:2010-01-01 20:02:20 2.INSERT INTO TEST2 (C1, C2,c3) VALUES (${v1},${v2},to_date(${v3},'yyyy-mm-dd'));oracle里面不需要以“:”结尾. 3.修改数据库日期

SQLserver中用convert函数转换日期格式

SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用convert函数转换日期格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.177 整理了一下SQL Server里面可能经常会用到的日期格式转换方法: 举例如下: select CONVERT(varchar, getdate(), 120

关于MySQL中使用LOAD DATA INFILE导入csv文件时的日期格式问题

在使用MySQL时,常常会用到Load Data Infile来导入数据,在遇到Date类型的列时,有时会遇到格式转换的问题: 首先创建一张简单的people表,包含名字,生日,年龄三个字段: mysql> create table people( -> name varchar(10) NOT NULL, -> birthday date NOT NULL, -> age int NOT NULL); Query OK, 0 rows affected (0.18 sec) 构造

【Oracle】Oracle时间日期格式

to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. to_char(日期,"转换格式" ) 即把给定的日期按照"转换格式"转换. 转换的格式: 表示year的:y 表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年 表示month的:mm 用2位数字表示月:mon 用简写形式 比如11月或者nov :m