import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class ConnDB {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:dbName", "dbUsername", "dbPassword");
Statement stmt = conn.createStatement();
String sql = "select name, birthday from test_date";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
Date date = rs.getDate("birthday");
/**
* ResultSet的getDate()方法只能取出日期
* 如果只想取出时间可以使用getTime(),
* 如果希望取出日期和时间可以使用getTimestamp(),
* 如果不怕麻烦的话,你也可以取一次日期(Date),再取一次时间(Time)
* birthday : 2010-10-22
* birthday : 1983-03-06
*/
System.out.println("birthday : " + date);
/**
* 只想取年,月或者日
* 字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
*/
SimpleDateFormat y = new SimpleDateFormat("yyyy");
String year = y.format(date);
System.out.println(year);
SimpleDateFormat m = new SimpleDateFormat("MM");
String month = m.format(date);
System.out.println(month);
//取月份的做法
Calendar cal = Calendar.getInstance();//取得一个Calendar类型的实例
cal.setTime(date);//将目标date赋值给Calendar实例
System.out.println("Calendar.MONTH" + cal.get(Calendar.MONTH));//月份等信息随便获取
SimpleDateFormat d = new SimpleDateFormat("dd");
String day = d.format(date);
System.out.println(day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS");
String format_date = sdf.format(date);
System.out.println(format_date);
/**
* birthday : 2010-10-22
2010
10
22
2010-10-22 24:00:00.000 --------------------- 可以看到这里给出的时间是默认的,而不是从数据库中取出的
birthday : 1983-03-06
1983
03
06
1983-03-06 24:00:00.000
*/
/**
* 取出完整的日期和时间
*/
Timestamp ts = rs.getTimestamp("birthday");
SimpleDateFormat ts_format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
String date_str = ts_format.format(ts);
String name = rs.getString("name");
System.out.println("I am " + name + ", I was born at " + date_str);
/**
* birthday : 2010-10-22
2010
10
22
2010-10-22 24:00:00.000
I am 张三, I was born at 2010-10-22 11:22:31 ---------- 可以看到这里取得了数据库中真正的日期和时间
birthday : 1983-03-06
1983
03
06
1983-03-06 24:00:00.000
I am 李四, I was born at 1983-03-06 22:55:33
*/
}
/**
* 向数据库中的日期/时间字段birthday插入,指定格式的日期/时间
* Oracle中to_date函数的多种日期格式
* 多种日期格式:
YYYY:四位表示的年份
YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪
MM:01~12的月份编号
MONTH:九个字符表示的月份,右边用空格填补
MON:三位字符的月份缩写
WW:一年中的星期
D:星期中的第几天
DD:月份中的第几天
DDD:年所中的第几天
DAY:九个字符表示的天的全称,右边用空格补齐
HH,HH12:一天中的第几个小时,12进制表示法
HH24:一天中的第几个小时,取值为00~23
MI:一小时中的分钟
SS:一分钟中的秒
SSSS:从午夜开始过去的秒数
*/
String bir_str = "1983-3-6 13:4:24";
String insert_sql = "insert into test_date(name, birthday) values ('王五', to_date('"+bir_str+"', 'YYYY-MM-DD HH24:MI:SS'))";
System.out.println(insert_sql);
stmt.executeUpdate(insert_sql);
}
}
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class ConnDB {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:dbName", "dbUsername", "dbPassword");
Statement stmt = conn.createStatement();
String sql = "select name, birthday from test_date";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
Date date = rs.getDate("birthday");
/**
* ResultSet的getDate()方法只能取出日期
* 如果只想取出时间可以使用getTime(),
* 如果希望取出日期和时间可以使用getTimestamp(),
* 如果不怕麻烦的话,你也可以取一次日期(Date),再取一次时间(Time)
* birthday : 2010-10-22
* birthday : 1983-03-06
*/
System.out.println("birthday : " + date);
/**
* 只想取年,月或者日
* 字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
*/
SimpleDateFormat y = new SimpleDateFormat("yyyy");
String year = y.format(date);
System.out.println(year);
SimpleDateFormat m = new SimpleDateFormat("MM");
String month = m.format(date);
System.out.println(month);
//取月份的做法
Calendar cal = Calendar.getInstance();//取得一个Calendar类型的实例
cal.setTime(date);//将目标date赋值给Calendar实例
System.out.println("Calendar.MONTH" + cal.get(Calendar.MONTH));//月份等信息随便获取
SimpleDateFormat d = new SimpleDateFormat("dd");
String day = d.format(date);
System.out.println(day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS");
String format_date = sdf.format(date);
System.out.println(format_date);
/**
* birthday : 2010-10-22
2010
10
22
2010-10-22 24:00:00.000 --------------------- 可以看到这里给出的时间是默认的,而不是从数据库中取出的
birthday : 1983-03-06
1983
03
06
1983-03-06 24:00:00.000
*/
/**
* 取出完整的日期和时间
*/
Timestamp ts = rs.getTimestamp("birthday");
SimpleDateFormat ts_format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
String date_str = ts_format.format(ts);
String name = rs.getString("name");
System.out.println("I am " + name + ", I was born at " + date_str);
/**
* birthday : 2010-10-22
2010
10
22
2010-10-22 24:00:00.000
I am 张三, I was born at 2010-10-22 11:22:31 ---------- 可以看到这里取得了数据库中真正的日期和时间
birthday : 1983-03-06
1983
03
06
1983-03-06 24:00:00.000
I am 李四, I was born at 1983-03-06 22:55:33
*/
}
/**
* 向数据库中的日期/时间字段birthday插入,指定格式的日期/时间
* Oracle中to_date函数的多种日期格式
* 多种日期格式:
YYYY:四位表示的年份
YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪
MM:01~12的月份编号
MONTH:九个字符表示的月份,右边用空格填补
MON:三位字符的月份缩写
WW:一年中的星期
D:星期中的第几天
DD:月份中的第几天
DDD:年所中的第几天
DAY:九个字符表示的天的全称,右边用空格补齐
HH,HH12:一天中的第几个小时,12进制表示法
HH24:一天中的第几个小时,取值为00~23
MI:一小时中的分钟
SS:一分钟中的秒
SSSS:从午夜开始过去的秒数
*/
String bir_str = "1983-3-6 13:4:24";
String insert_sql = "insert into test_date(name, birthday) values ('王五', to_date('"+bir_str+"', 'YYYY-MM-DD HH24:MI:SS'))";
System.out.println(insert_sql);
stmt.executeUpdate(insert_sql);
}
}
-----------------------------
import java.util.Calendar;
import java.util.Date;
/*
* 获取当前系统时间
*/
public class CurrentTime {
public static void main(String[] args) {
System.out.println(System.currentTimeMillis());
System.out.println(new Date());
System.out.println(Calendar.getInstance().getTime());
/*Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
System.out.println(c.getTime());*/
/*
* Oracle
*/
String str = "insert into user(birthday) values (sysdate)";
}
}