日常小结篇-日期处理(java程序,Oracle数据库)
来源:互联网 发布:成都大数据协会 编辑:程序博客网 时间:2024/05/17 23:14
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型: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')
阅读全文
0 0
- 日常小结篇-日期处理(java程序,Oracle数据库)
- 日常小结篇-java异常处理
- Java时间日期处理小结
- java日期时间处理小结
- java/oracle日期处理
- java/oracle日期处理
- java/oracle日期处理
- java/oracle日期处理
- java/oracle日期处理
- java/oracle日期处理
- java/oracle日期处理
- java/oracle日期处理
- java/oracle日期处理
- Oracle Java 日期问题小结
- Oracle数据库日期的处理
- oracle日常使用小结
- 日常 mysql数据库小结
- 【转】java/oracle日期处理
- 第七周||数据结构之自建算法库——链队(链式队列)
- 关于overflow适配IE的问题
- 第7周项目1 建立顺序环形队列算法库
- linux编辑器vim常用命令
- adb命令行保存logcat信息
- 日常小结篇-日期处理(java程序,Oracle数据库)
- 字符串算法——二维有序数组中查找目标值(Search a 2D Matrix)
- VMware虚拟机中如何配置静态IP
- 选择排序
- HDU 5924 Mr. Frog’s Problem
- Java基础笔记
- 分布式架构:spring mvc +mybatis + Dubbo+Zookeeper+Proxy+Restfu
- 在eclipse里面启动tomcat的时候出错:A child container failed during start
- leetCode 11