Oracle数据库date类型与Java中Date的联系与转化
以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助。
new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当前。
new Date(long date) : 分配 Date 对象并初始化此对象,以表示自从标准基准时间
(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
long getTime() :返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
String toString() :把此 Date 对象转换为以下形式的
String: dow mon dd hh:mm:ss zzz yyyy
其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
*****************************************
static Calendar getInstance() :使用默认时区和语言环境获得一个日历。
Date getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
long getTimeInMillis() :返回此 Calendar 的时间值,以毫秒为单位。
void setTime(Date date) :使用给定的 Date 设置此 Calendar 的时间。
void setTimeInMillis(long millis) :用给定的 long 值设置此 Calendar 的当前时间值。
**** *************************************
new SimpleDateFormate("yyyy-MM-dd hh:mm:ss").format(new Date());返回String类对象
总结:
1、获得系统当前时间
获得long型: System.currentTimeMillis()
获得Data型:new Data();
获得Calendar型:
Calendar c = Calendar.getInstance();
c.setTime(System.currentTimeMillis();
通常获得Calendar后,可以对各个字段进操作;
2、时间的各种类型之间的转换:
Calendar 到Date:c.getTime() 返回一个Date对象
Date 到 Calendar:c.setTime():返回一个Calendar对象
3、关于数据库中时间的存储对象
(1)表示日期和时间的DATA类型,DATA字段中存储的值包含有与世纪、年、月、日、小时、分钟、和秒相对应的“组成部分”,它通过不同的方法显示和操作,它有效地独立于任何塔顶字符串格式
(2)从Oracle 9i开始提供TIMESTAMP类型是DATE类型的有效扩展形式,它提供更大的时间精度,支持多大九位的小孩,同时还能存储时区信息
(3)从Oracle 9i开始INTERVAL类型,它支持存储时间差,并且可以与DATE或者TIMESTAMP加法运算以生成一个新的DATE或者TIMESTAMP
使用SYSDATE选择当前的系统时间,返回DATE类型的值,是数据库所在的操作系统的当前日期和时间
DATE类型的内部表示形式:执行select DUMP(sysdate) from dual;
Typ=13 Len=8: 218,7,3,23,11,27,11,0 结果中逗号分割的值对应于Oracle存储日期和时间的每个部分,(从世纪到秒)所使用的字节
4、DATE对象与字符串之间进行转换
TO_DAT()和TO_CHAR():这两个函数都有三个参数,一个是要转化的值,一个是可选的格式掩码和一个用于指定语言的可选字符串
to
select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual;
select to_date('20100323','YYYYMMDD') from dual;
select ename, to_char(hiredate,'ddthMon,YYYY') from emp
where hiredate between
to_date('1980-01-01','YYYY-MM-DD')
and
to_date('1985-01-01','YYYY-MM-DD')
5、常用操作
把程序的数据存到数据库中:
当程序中是String 类型时,SQL文应该用上
to_date(hiredate,'yyyy-mm-dd hh24:mi:ss')这样放到数据库中就是date类型
当程序中是Date类型时,必须先转为String类型,利用
new SimpleDateFormate("yyyy-MM-dd hh:mm:ss").format(new Date())转化
把数据库中数据取出时
要使用to_char(hiredate,'YYYY-MM-DD HH24:MI:SS')变为String类型,
还可以继续利用java.sql.Date.valueOf(String s)
将 JDBC 日期转义形式的字符串转换成 Date 值。
6、取得Oracle数据库时间并存到Java中
从数据库date取得并转为java.util.Date类型
方法一: select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') as current_time from dual 取得字符串
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = format.parse(map.get("CURRENT_TIME"));解析后取得Date的类型: Sat Jul 03 13:32:46 CST 2010
format.format(dateString);然后再格式化成想要的格式字符串
format.format(dateString);将Date类型转为想要的格式。但是类型为String。在想变回来时在用parse()方法.
方法一: select (sysdate - 8 / 24 - to_date('1970-01-01', 'yyyy-mm-dd')) * 86400000 current_milli from dual 取得java.math.BigDecimal类型
BigDecimal b = (BigDecimal)dateMap.get("CURRENT_MILLI");
Long dateLong = b.longValue();
new Date(dateLong);取得Date对象,可以处理
Oracle数据库date类型与Java中Date的联系与转化的更多相关文章
- Date, TimeZone, MongoDB, java中date的时区问题
打印new Date(),Fri Aug 12 13:37:51 CST 2016. 显示Asia/Shanghai的时区,但是date toString 的时区简写却是CST.更坑爹的是,Googl ...
- java中Date无法获取数据库时分秒的问题
数据库使用的字段是timestamp(6),在数据库看的时候明明时分秒是有的,然而通过rs.getDate()获取出来的时候时分秒就没有了,查了一下资料终于解决了,这里有一个重要的知识点,java ...
- Java中Date类型详解
一.Date类型的初始化 1. Date(int year, int month, int date); 直接写入年份是得不到正确的结果的. 因为java中Date是从1900年开始算的,所以前面的第 ...
- [转]Java中Date转换大全,返回yyyy-MM-dd的Date类型
/** * 获取现在时间,这个好用 * * @return返回长时间格式 yyyy-MM-dd HH:mm:ss */ public static Date getSqlDate() { Date s ...
- Java中Date各种相关用法
Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...
- Java中Date和Calender类的使用方法
查看文章 Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...
- PAT——不吉利的日期(java中date和Calendar使用)
题目描述 在国外,每月的 13 号和每周的星期 5 都是不吉利的.特别是当 13 号那天恰好是星期 5时,更不吉利. 现在给你一个年份,请你从小到大依次输出当年所有13 号是星期 5 的月份. 输入描 ...
- Java中Date()类 日期转字符串、字符串转日期的问题(已解决)
Java中Date()类 日期转字符串.字符串转日期的问题 今天在写东西的时候突然发现一个问题,就是先new 一个Date()然后将生成的值转为字符串, 然后再将转换后的字符串再次用new Date( ...
- java 与日期转换相关的方法(java.util.date类型和java.sql.date类型互相转换)、随机字符串生成方法、UUID生产随机字符串
package com.oop.util; import java.text.*; import java.util.UUID; import org.junit.Test; /* * 与日期相关的工 ...
随机推荐
- 查全率(召回率)、精度(准确率)和F值
文献中的recall rate(查全率或召回率) and precision(精度)是很重要的概念.可惜很多中文网站讲的我都稀里糊涂,只好用google查了个英文的,草翻如下:召回率和精度定义: 从一 ...
- Linux_Oracle命令大全
一,启动 1.#su - oracle 切换到oracle用户且切换到它的环境 2.$lsnrctl status 查看监听及数据库状态 3.$ls ...
- 打Patch实践
一.找到相应PATCH 确认系统已安装模块版本. SELECTapp.application_short_name, app.application_name, pi.patch_level FR ...
- 如何在Cocos2D游戏中实现A*寻路算法(七)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- 【一天一道LeetCode】#122. Best Time to Buy and Sell Stock II
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Say you ...
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(八)
回到Xcode,新建ArmStatic类,继承于CCSprite.同样在初始化方法中打开用户交互. 下面添加触摸回调方法,touchBegan以及touchMoved方法和Arm基本相同,主要不同处在 ...
- Java虚拟机结构
一.JVM主要的结构如下: 二.各个区域功能介绍 1).方法区(Method Area): (1)用于存储虚拟机加载的类信息.常量.静态变量等,是各个线程共享的内存区域: ...
- C语言之统计输入字符数量
这个程序市委了统计所输入的数字或者英文字母的数字的数量,当然稍加改动便可以统计特殊字符的个数,在此不再冗叙. 代码如下: #include <iostream> using namespa ...
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...
- Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局
Android实训案例(八)--单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局 阿法狗让围棋突然就被热议了,鸿洋大神也顺势出了篇五子棋单机游戏的视频,我看到了就像膜拜膜拜,就 ...