java 时间 datetime_Java DateTime 日期时间处理

ava.util.Date 與 java.sql.Date 互轉

java.sql.Date 就是一個裝了毫秒值的精簡型外覆器,它允許 JDBC 將毫秒值標識為 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以來經過的毫秒數。而 java.util.Date 的 getTime() 及 setTime(long time) 就是在處理毫秒值的函數。

// java.util.Date --> java.sql.Date

java.util.Date now = new java.util.Date();

java.sql.Date sqlDate = new java.sql.Date(now.getTime());

// java.sql.Date --> java.util.Date

java.util.Date utilDate = new java.util.Date();

utilDate.setTime(sqlDate.getTime());

java.util.Date 與 java.util.Calendar 互轉

Date 要跟 Calendar 互轉,主要都要透過 Calendar 的 getTime 及 setTime 函數。

// java.util.Date --> java.util.Calendar

java.util.Date now = new java.util.Date();

java.util.Calendar calendar = java.util.Calendar.getInstance();

calendar.setTime(now);

// java.util.Calendar --> java.util.Date

java.util.Date utilDate = java.util.Calendar.getInstance().getTime();

java.lang.String 轉成 java.util.Date

原本 class Date 有一個函數 parse(String s) 可以把 String 轉成毫秒數。但是從 JDK 1.1 開始,由 DateFormat.parse(String s) 取代。

// java.lang.String --> java.util.Date

java.util.Date date = DateFormat.getDateInstance().parse("2011/1/1");

date = DateFormat.getTimeInstance().parse("下午 12:12:12");

date = DateFormat.getDateTimeInstance().parse("2011/1/1 下午 12:12:12");

但是使用 DateFormat.parse() 來解析 String 有一個壞處,就是只能使用系統環境固定的格式。像我使用 WindowsXP 台灣版本,都要輸入上午/下午才能正確解析 String。這時候就可以改用 java.text.SimpleDateFormat.parse() 來做自訂格式的解析。

// java.lang.String --> java.util.Date

java.util.Date date;

java.text.SimpleDateFormat simple = new java.text.SimpleDateFormat();

simple.applyPattern("yyyy-MM-dd");

date = simple.parse("2011-1-1");

simple.applyPattern("HH:mm:ss");

date = simple.parse("13:13:13");

simple.applyPattern("yyyy-MM-dd HH:mm:ss");

date = simple.parse("2011-1-1 13:13:13");

java.util.Date 轉成 java.lang.String

java.util.Date 要轉成 java.lang.String 就比較簡單了。只要使用 java.text.SimpleDateFormat 的 format 函數就可以。

// java.util.Date --> java.lang.String

java.util.Date now = new java.util.Date();

System.out.println(new java.text.SimpleDateFormat().format(now));

System.out.println(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值