总结-日期处理(java程序,Oracle数据库)
2017-10-12 10:42
441 查看
java程序中:
对应资源包
对应资源包
import java.util.Date; import java.text.SimpleDateFormat;
对应程序 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );//设置日期格式。 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); PS:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制。 日期转字符串 String str = df.format(new Date()); //获取系统当前时间,并转换为字符串格式内容。 字符串转日期 “2008-07-10 19:20:00” 要把它转成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " ); 获得系统当前时间 Date date =new Date(); 日期格式转成long型 4000 :1467770970 long lTime = date.getTime() ; System.out.println(lTime); 格式long型转成Date型,再转成String: 1464710394 -> ltime2*1000 -> 2016-05-31 23:59:54 long ltime2 = 1464710394; //日期的long格式 SimpleDateFormat lsdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date lDate = new Date(ltime2*1000); String lStrDate = lsdFormat.format(lDate); System.out.println(lStrDate); 其他格式的日期转换为正常格式日期 日期原本是:2015-12-8 0:0:0,但是后台得到的是下面的date。 String date = "2015-12-7T16:00:00.000Z"; date = date.replace("Z", " UTC");//注意是空格+UTC SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS Z");//注意格式化的表达式 Date d = format.parse(date); System.out.println(d); SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");//注意格式化的表达式" String dateStr = format2.format(d); System.out.println(dateStr); 结果: Tue Dec 08 00:00:00 CST 2015 2015-12-08 解释: 用的是UTC 通用标准,以z来标识我们所在的国内时区,+8区。 可以分别得到时间年,月,日 Calendar c = Calendar.getInstance();//可以对每个时间域单独修改,获取的是系统当前时间 int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int date = c.get(Calendar.DATE); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); int second = c.get(Calendar.SECOND); System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second); 结果: 2017/9/12 10:16:13 Oracle数据库中日期数据插入问题 往Oracle数据库中插入日期型数据(to_date的用法) INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ; 查询显示:2007-12-20 18:31:34.0 ------------------- INSERT INTO FLOOR VALUES ( to_date ( '2007-12-14 14:10' , 'YYYY-MM-DD HH24:MI' ) ); 查询显示:2007-12-14 14:10:00.0 ------------------- INSERT INTO FLOOR VALUES ( to_date ( '2007-12-14 14' , 'YYYY-MM-DD HH24' ) ); 查询显示:2007-12-14 14:00:00.0 ------------------- INSERT INTO FLOOR VALUES ( to_date ( '2007-11-15' , 'YYYY-MM-DD' ) ); 查询显示:2007-11-15 00:00:00.0 ------------------- INSERT INTO FLOOR VALUES ( to_date ( '2007-09' , 'YYYY-MM' ) ); 查询显示:2007-09-01 00:00:00.0 ------------------- INSERT INTO FLOOR VALUES ( to_date ( '2007' , 'YYYY' ) ); 查询显示:2007-05-01 00:00:00.0 ------------------- PS: 1.当省略HH、MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值。 如果输入的日期数据忽略时间部分,Oracle会将时、分、秒部分都置为0,也就是说会取整到日。 同样,忽略了DD参数,Oracle会采用1作为日的默认值,也就是说会取整到月。 但是,不要被这种“惯性”所迷惑,如果忽略MM参数,Oracle并不会取整到年,而是取整到当前 2,oracle中日期可以直接用算数运算符比较,如: oracle 查询日期区间内的数据一般最常用的就是between and 和>=,<=(或者不要等号)了; 举例:select * from tablename t where t.日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss') 或者: select * from tablename where t.日期列 >= to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss') and t.日期列 <= to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss') 如果要查询开区间的数据只需将>= 和<=改为>和<就行。 PS: 在ORACLE操作日期格式的数据的时候,会出现的问题 1、无效的月份问题 最近在往数据库中插入时间时,Oracle报“无效的月份问题”,具体SQL如下: INSERT INTO TS_COUNT ( ID,CNAME, STARTTIME, ENDTIME,VALUE ) VALUES ( 1, 'John', '01/06/2013', '02/06/2013', 800 ); 报错:ORA-01843:无效的月份。这是由于日期格式不对造成的。 解决办法: 2、日期插入格式问题 插入日期格式数据时,报ORA-01861: 文字与格式字符串不匹配。 如果直接按照字符串方式,或者,直接使用to_date('2007-12-28 10:07:24'),没有指定日期格式,就会报错:ORA-01861: 文字与格式字符串不匹配,必须指定日期格式。 如下: to_date('2007-12-28 10:07:24' , 'yyyy-mm-dd hh24:mi:ss')
相关文章推荐
- java日期处理类总结 转
- AIX6.1 TL04下安装Oracle补丁时报java程序正在被使用问题处理总结
- java日期处理类总结
- 在开发iOS程序时对日期处理的总结
- java日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类
- java日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类
- java知识总结(4)——日期处理
- [Java] 日期处理 04 总结
- java日期处理的一些总结
- JAVA日期处理总结
- java日期处理总结
- Java程序中使用oracle数据库LOB字段的总结
- java日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类
- JAVA日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类
- 在开发iOS程序时对日期处理的总结
- java日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类
- java日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类
- 在开发iOS程序时对日期处理的总结
- java日期处理类总结:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类
- 在开发iOS程序时对日期处理的总结