Java基础_日期时间处理

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.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)";
        
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值