標籤:日本 java 時區 目前時間 .com 輸出 [] nbsp 注意
一、相關類
1、Date:
Date表示特定的瞬間,精確到毫秒,Date中的相應方法已廢棄,從JDK 1.1開始,應該使用Calendar類實現日期和時間欄位之間轉換。
2、DateFormat:
DateFormat是日期/時間格式化子類的抽象類別,格式化並解析日期或時間,可以進行日期 -> 文本 ,文本-> 日期的轉換。子類SimpleDateFormat。
3、Calendar:
Calendar是日曆抽象類別,可通過其擷取日期時間。推薦使用。
package datetext;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Text { public static void main(String[] args) { Date d = new Date(); System.out.println(d);//第一種表示方法,Sat Jul 22 20:18:10 CST 2017 System.out.println("----------------------"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(d));//第二種表示方法,2017-07-22 20:18:10|SimpleDateFormat的用法 System.out.println("----------------------");
//老方法,慢慢的被淘汰 System.out.println(d.getTime()); System.out.println(d.getYear()); System.out.println(d.getMonth()+1); System.out.println(d.getDate()); System.out.println(d.getHours()); System.out.println(d.getMinutes()); System.out.println(d.getSeconds()); System.out.println("----------------------"); //新方法,用Calendar Calendar c = Calendar.getInstance(); //Calendar.getInstance() 使用預設時區和語言環境獲得一個日曆。 System.out.println(c.get(Calendar.YEAR)); System.out.println(c.get(Calendar.MONTH)+1);//注意:月份需要+1表示當前月 System.out.println(c.get(Calendar.DATE)); System.out.println(c.get(Calendar.HOUR)); System.out.println(c.get(Calendar.MINUTE)); System.out.println(c.get(Calendar.SECOND)); System.out.println("----------------------"); //SimpleDateFormat Date d2 = new Date(); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf2.format(d2)); Calendar c2 =Calendar.getInstance(); Date d_cal = c2.getTime(); System.out.println(sdf2.format(d_cal)); }}
二、SimpleDateFormat
SimpleDateFormat 是一個以與語言環境相關的方式來格式化和分析日期的具體類。它允許進行格式化(日期 -> 文本)、分析(文本 -> 日期)和正常化。
SimpleDateFormat 使得可以選擇任何使用者定義的日期-時間格式的模式。但是,仍然建議通過 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 來新的建立日期-時間格式化程式。
1、日期和時間模式
2、例子:給定的日期和時間為美國太平洋時區的本地時間 2001-07-04 12:08:56
三、表示國際時間(用Calendar)
package datetext;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.TimeZone;public class Text { public static void main(String[] args) { Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(d)); System.out.println("----------------------"); /*String[] ids = TimeZone.getAvailableIDs(); for(int i=0;i<ids.length;i++){ System.out.println(ids[i]);//輸出所有地區的ID }*/ //以日本為例 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("Japan")); //getTimeZone(),獲得時區 System.out.println(c.get(Calendar.HOUR)); //12小時制 System.out.println(c.get(Calendar.HOUR_OF_DAY)); //24小時制 }}
四、把長整型數設定成一個特定的時間點:
package datetext;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Text { public static void main(String[] args) { Date d = new Date(); //getTime(),返回一個表示此 Calendar 時間值(從曆元至現在的毫秒位移量)的 Date 對象。 System.out.println(d.getTime());//輸出值為:1500733409509 Calendar c = Calendar.getInstance(); c.setTimeInMillis(1500733409509l);//setTimeInMillis(long millis), //用給定的 long 值設定此 Calendar 的目前時間值。 Date dd = c.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(dd)); //輸出值為 2017-07-22 22:23:29 }}五、Timestamp(時間戳記,可以精確到毫秒)
package datetext;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Text { public static void main(String[] args) { Date d = new Date(); System.out.println(d.getTime());//輸出值為:1500733409509 Calendar c = Calendar.getInstance(); c.setTimeInMillis(1500733409509l); Date dd = c.getTime(); Timestamp ts = new Timestamp(1500733409509l); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS"); System.out.println(sdf.format(ts)); //輸出值為 2017-07-22 22:23:29:509 }}
Java日期處理