亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

java日期操作

系統 1819 0
將Date類型寫入數據庫的兩種方法
先了解幾個類:
1、具體類(和抽象類相對)java.util.Date?
2、抽象類java.text.DateFormat 和它的一個具體子類,java.text.SimpleDateFormat?
3、抽象類java.util.Calendar 和它的一個具體子類,java.util.GregorianCalendar?
具體類可以被實例化, 但是抽象類卻不能. 你首先必須實現抽象類的一個具體子類.

************************************
一種將java的日期類型直接轉換為SQL的日期類型的方法,比較簡單但適用性狹窄,
注意一下例子在jdk下編譯沒有時間,但在jb和Eclipse下就有時間,不知怎么回事

——————————————
public class a {

public static void main(String[] args) {
?
? java.util.Date now = new Date();
? //PreparedStatement類型的setDate方法只接受sql.date類型,所有必須先轉換
? java.sql.Date sqlnow = new java.sql.Date(now.getTime());
?? try {
??? //froName必須放在try中,否則編譯不通過,可能froName方法拋出編譯時異常了
??? //經查閱 public static Class forName(String className) throws???? ClassNotFoundException {...}
??? Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
??? Connection connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.2:1433;DatabaseName=pubs","sa","");
??? PreparedStatement ps=connection.prepareStatement("update test set f1=?");
??? ps.setDate(1,sqlnow);
??? int i = ps.executeUpdate();
?? }
??? catch (Exception ex) {}

}
}
**********************************************************
另一種是將java的date類型通過SimpleDateFormat轉換為字符串,再寫到sql語句中
-----------------------------------------------------------
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class a{
? public static void main(String[] args) {
? //之所以用kk而不用hh是因為kk是24進制的而不雖操作系統設置變動
? SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
? Date now = new Date();
? //format()方法的返回值是String型
? System.out.println(sdf.format(date));
}}

-----------------------------------------------------
一下是逆操作,將String轉換為Date,parse()方法能拋出ParseException異常,所以你必須使用適當的異常處理技術
try{
??? SimpleDateFormat sbf =new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
??? String sdate="2004-05-14 21:29:51";
??? Date ddate = sbf.parse(sdate);
??? System.out.println(ddate);
??? }
catch (Exception ex) { }
**************************************************************
以下是副產品,我們用到的情況比較少
util.date類型
----------------------------------------------
?? //1年前日期
?? java.util.Date myDate=new java.util.Date();?
?? long myTime=(myDate.getTime()/1000)-60*60*24*365;
?? myDate.setTime(myTime*1000);
?? //明天日期
?? myDate=new java.util.Date();
?? myTime=(myDate.getTime()/1000)+60*60*24;
?? myDate.setTime(myTime*1000);
? //兩個時間之間的天數
?? SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
?? java.util.Date date= myFormatter.parse("2003-05-1");
?? java.util.Date mydate= myFormatter.parse("1899-12-30");
?? long? day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
?? //加半小時
?? SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
?? java.util.Date date1 = format.parse("2002-02-28 23:16:00");
?? long Time=(date1.getTime()/1000)+60*30;
?? date1.setTime(Time*1000);
?? String mydate1=formatter.format(date1);
?? //年月周求日期
?? SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
?? java.util.Date date2= formatter2.parse("2003-05 5 星期五");
?? SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
?? String mydate2=formatter3.format(date2);
?? //求是星期幾
?? mydate= myFormatter.parse("2001-1-1");
?? SimpleDateFormat formatter4 = new SimpleDateFormat("E");
?? String mydate3=formatter4.format(mydate);
-----------------------------------------------
now.getYear();//實際年份減去1900,如果構造函數為Date(2008,2,25)則不減1900,如果構造函數為Date(17009456745)或者setTime(17009456745)還減1900
now.getMonth();//實際月份減去1,如果構造函數為Date(2008,2,25)則不減1,如果構造函數為Date(17009456745)或者setTime(17009456745)還減1900
now.getDay();//*,原來是取星期,不知sun公司是咋想的,腦袋進水了。
now.getDate();//這才是取1~31之間的日
now.getHours();//24進制的小時
now.getMinutes();//分
now.getSeconds();//秒
now.getTime();//返回1970年1月1日00:00:00起至今的毫秒數
now.setTime(long time);//真實日期為1970年1月1日午夜+time毫秒

*************************************
日歷類型的子類GregorianCalendar類型
構造函數GregorianCalendar(int year, int month, int date) ,無參數為但前時間
注意月份的表示,一月是0,二月是1,以此類推。因此最好使用單詞而不是使用數字來表示月份。父類Calendar使用常量來表示月份:JANUARY, FEBRUARY...
所以1903年12月17日可以寫為
GregorianCalendar aaa = new GregorianCalendar(1903, Calendar.DECEMBER, 17)
GregorianCalendar aaa = new GregorianCalendar(1903, 11, 17);
---------------------------------------
import java.util.Date;
import java.text.DateFormat;
import java.util.GregorianCalendar;
public class a {
public static void main(String[] args) {
? DateFormat df =? DateFormat.getDateInstance(DateFormat.FULL);
? GregorianCalendar gca = new GregorianCalendar();
? //getTime()方法是將GregorianCalendar對象轉換為Date對象
? gca.setTime(new Date());
? System.out.println("系統時間: " +df.format(gca.getTime()));
? //set 方法能夠讓我們通過簡單的設置星期中的哪一天這個域來將我們的時間調整為星期五.注意到這里我們使用了常量 DAY_OF_WEEK 和 FRIDAY來增強代碼的可讀性.
? //如果當前為星期五時間不變
? gca.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);
? System.out.println("下一個星期五: " +? df.format(gca.getTime()));
? //add 方法讓我們能夠在日期上加上數值.
? gca.add(GregorianCalendar.DAY_OF_MONTH, ;
? System.out.println("再加8天: " +? df.format(gca.getTime()));
? //get方法取對象中的一部分
? int i =? gca.get(GregorianCalendar.DAY_OF_MONTH);
? System.out.println(i);
}}



***************************************
Locale類:(java.util.Locale)
-----------------------------------
import java.util.Locale;
public class a {
public static void main(String[] args) {
? Locale localeEN = new Locale("en", "US");
? //另一實例化方法=locale.ENGLISH;
? System.out.println("Display Name: " +localeEN.getDisplayName());
? System.out.println("Country: " + localeEN.getCountry());
? System.out.println("Language: " + localeEN.getLanguage());

? Locale localeFR = new Locale("fr", "FR");
? System.out.println("\nDisplay Name: " +localeFR.getDisplayName());
? System.out.println("Country: " + localeFR.getCountry());
? System.out.println("Language: " + localeFR.getLanguage());

? // 用三種語言顯示本機語言、英語、法語
? System.out.println("用本語顯示DisplayName: "+ localeEN.getDisplayName());
? System.out.println("用英語顯示DisplayName:"+?? localeEN.getDisplayName(localeEN ));
? System.out.println("用法語顯示DisplayName:"+?? localeEN.getDisplayName(localeFR ));
}
}
*****************************************************

把Date以不同地域的格式顯示:java.text.DateFormat
getDateTimeInstance()的前兩個參數分別代表日期風格和時間風格,取值為SHORT, MEDIUM, LONG, 和 FULL
getDateInstance()方法:Java還提供了幾個選擇日期格式,你可以通過使用重載的getDateInstance(int style)獲得。出于方便的原因,DateFormat提供了幾種預置的常量,你可以使用這些常量參數SHORT, MEDIUM, LONG, 和FULL
-----------------------------------------------
import java.util.Locale;
import java.text.DateFormat;
import java.util.Date;
public class a {
? public static void main(String[] args) {????
??? Date now=new Date();
??? Locale localeCN=Locale.CHINA;
??? DateFormat df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,localeCN);
??? System.out.println(df.format(now));
?? //結果為2004年5月17日 星期一 下午16時38分32秒 CST?
}}
******************************************************
時區 java.util.TimeZone
--------------------------------------------------------
import java.util.TimeZone;
public class a {
? public static void main(String[] args) {
? // 系統時區
? TimeZone timeZoneFL = TimeZone.getDefault();
? System.out.println("\n" + timeZoneFL.getDisplayName());
? System.out.println("與GMT相差的微秒數: " + timeZoneFL.getRawOffset());
? System.out.println("Uses daylight saving: " + timeZoneFL.useDaylightTime());
? //通過“時區字符串ID”指定時區
? TimeZone timeZoneLondon = TimeZone.getTimeZone("Europe/London");
? System.out.println("\n" + timeZoneLondon.getDisplayName());
? System.out.println("與GMT相差的微秒數: " + timeZoneLondon.getRawOffset());
? System.out.println("采用夏令時: " + timeZoneLondon.useDaylightTime());
? }}
-------------------------------------------------------
顯示結果:
中國標準時間
與GMT相差的微秒數:
Uses daylight saving:false;

格林威治時間
與GMT相差的微秒數:
采用夏令時: true

********************************************************
顯示不同時區的時間? df.setTimeZone(TimeZone kkk)
----------------------------------------------------
public class a {
? public static void main(String[] args) {

??? Date now=new Date();
??? DateFormat df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
??? TimeZone timezoneCH=TimeZone.getTimeZone("China/BeiJing");
??? df.setTimeZone(timezoneCH);
??? System.out.println("北京時間"+df.format(now));
??? TimeZone timezoneFR=TimeZone.getTimeZone("Europe/Paris");
??? df.setTimeZone(timezoneFR);
??? System.out.println("巴黎時間"+df.format(now));???
? }}
-----------------------------------------------------
結果如下:
北京時間2004年5月17日 星期一 上午09時31分34秒 GMT
巴黎時間2004年5月17日 星期一 上午11時31分34秒 CEST

java日期操作


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产亚洲精品成人一区看片 | 国产精品久久久久天天影视 | 亚洲一区二区三区在线 | 色爱视频 | 久久精品道一区二区三区 | 久草在线最新视频 | 久久成人免费播放网站 | 久久久99精品免费观看 | 免费观看国产网址你懂的 | 99免费在线播放99久久免费 | 青春禁区视频在线观看动漫版 | 成人在线免费网站 | 日本黄页网站在线观看 | 免费精品视频 | 免费区一级欧美毛片 | 久久久久中文字幕 | 亚洲 国产 路线1路线2路线 | 亚洲swag精品自拍一区 | 日本一级~片免费永久 | 久久综合视频网站 | 日韩精品久久久毛片一区二区 | 夜夜女人国产香蕉久久精品 | 成人小视频在线播放 | 免费视频爱爱 | 男女超爽视频免费播放在线观看 | 精品国产自在久久 | 久久狠狠色狠狠色综合 | 亚洲黄色在线看 | 黄黄网站 | 91亚色视频在线观看 | 久久国产视频在线观看 | 欧美精品99久久久久久人 | 亚洲国产福利精品一区二区 | 国产在线精品一区二区不卡 | 97影院理论片手机在线观看 | 奇米影视7777久久精品人人爽 | 四虎精品影视 | 欧美视频亚洲视频 | 日本一区二区三区中文字幕 | 狠狠色丁婷婷综合久久 | 国产黄色一级大片 |