GalaxyPilot —— D.S


                  生命不熄,戰斗不止
          數據加載中……

          JSP中日期格式轉換

          /**
          ???*?字符串轉換為java.util.Date<br>
          ???*?支持格式為?yyyy.MM.dd?G?'at'?hh:mm:ss?z?如?'2002-1-1?AD?at?22:10:59?PSD'<br>
          ???*?yy/MM/dd?HH:mm:ss?如?'2002/1/1?17:55:00'<br>
          ???*?yy/MM/dd?HH:mm:ss?pm??如?'2002/1/1?17:55:00?pm'<br>
          ???*?yy-MM-dd?HH:mm:ss?如?'2002-1-1?17:55:00'?<br>
          ???*?yy-MM-dd?HH:mm:ss?am?如?'2002-1-1?17:55:00?am'?<br>
          ???*?@param?time?String?字符串<br>
          ???*?@return?Date?日期<br>
          ???*/
          ??public?static?Date?stringToDate(String?time){
          ????SimpleDateFormat?formatter;
          ????int?tempPos=time.indexOf("AD")?;
          ????time=time.trim()?;
          ????formatter?=?new?SimpleDateFormat?("yyyy.MM.dd?G?'at'?hh:mm:ss?z");
          ????if(tempPos>-1){
          ??????time=time.substring(0,tempPos)+
          ???????????"公元"+time.substring(tempPos+"AD".length());//china
          ??????formatter?=?new?SimpleDateFormat?("yyyy.MM.dd?G?'at'?hh:mm:ss?z");
          ????}
          ????tempPos=time.indexOf("-");
          ????if(tempPos>-1&&(time.indexOf("?")<0)){
          ??????formatter?=?new?SimpleDateFormat?("yyyyMMddHHmmssZ");
          ????}
          ????else?if((time.indexOf("/")>-1)?&&(time.indexOf("?")>-1)){
          ??????formatter?=?new?SimpleDateFormat?("yyyy/MM/dd?HH:mm:ss");
          ????}
          ????else?if((time.indexOf("-")>-1)?&&(time.indexOf("?")>-1)){
          ??????formatter?=?new?SimpleDateFormat?("yyyy-MM-dd?HH:mm:ss");
          ????}
          ????else?if((time.indexOf("/")>-1)?&&(time.indexOf("am")>-1)?||(time.indexOf("pm")>-1)){
          ??????formatter?=?new?SimpleDateFormat?("yyyy-MM-dd?KK:mm:ss?a");
          ????}
          ????else?if((time.indexOf("-")>-1)?&&(time.indexOf("am")>-1)?||(time.indexOf("pm")>-1)){
          ??????formatter?=?new?SimpleDateFormat?("yyyy-MM-dd?KK:mm:ss?a");
          ????}
          ????ParsePosition?pos?=?new?ParsePosition(0);
          ????java.util.Date?ctime?=?formatter.parse(time,?pos);

          ????return?ctime;
          ??}
          ??/**
          ???*?將java.util.Date?格式轉換為字符串格式'yyyy-MM-dd?HH:mm:ss'(24小時制)<br>
          ???*?如Sat?May?11?17:24:21?CST?2002?to?'2002-05-11?17:24:21'<br>
          ???*?@param?time?Date?日期<br>
          ???*?@return?String???字符串<br>
          ???*/
          ???

          ??public?static?String?dateToString(Date?time){
          ????SimpleDateFormat?formatter;
          ????formatter?=?new?SimpleDateFormat?("yyyy-MM-dd?HH:mm:ss");
          ????String?ctime?=?formatter.format(time);

          ????return?ctime;
          ??}
          ??/**
          ???*?將java.util.Date?格式轉換為字符串格式'yyyy-MM-dd?HH:mm:ss?a'(12小時制)<br>
          ???*?如Sat?May?11?17:23:22?CST?2002?to?'2002-05-11?05:23:22?下午'<br>
          ???*?@param?time?Date?日期<br>
          ???*?@param?x?int?任意整數如:1<br>
          ???*?@return?String?字符串<br>
          ???*/
          ??public?static?String?dateToString(Date?time,int?x){
          ????SimpleDateFormat?formatter;
          ????formatter?=?new?SimpleDateFormat?("yyyy-MM-dd?KK:mm:ss?a");
          ????String?ctime?=?formatter.format(time);

          ????return?ctime;
          ??}
          ??/**
          ???*取系統當前時間:返回只值為如下形式
          ???*2002-10-30?20:24:39
          ???*?@return?String
          ???*/
          ??public?static?String?Now(){
          ????return?dateToString(new?Date());
          ??}

          ??/**
          ???*取系統當前時間:返回只值為如下形式
          ???*2002-10-30?08:28:56?下午
          ???*@param?hour?為任意整數
          ???*@return?String
          ???*/
          ??public?static?String?Now(int?hour){
          ????return?dateToString(new?Date(),hour);
          ??}
          ??/**
          ???*取系統當前時間:返回值為如下形式
          ???*2002-10-30
          ???*@return?String
          ???*/
          ??public?static?String?getYYYY_MM_DD(){
          ????return?dateToString(new?Date()).substring(0,10);

          ??}
          ??/**
          ???*取系統給定時間:返回值為如下形式
          ???*2002-10-30
          ???*@return?String
          ???*/
          ???public?static?String?getYYYY_MM_DD(String?date){
          ????return?date.substring(0,10);

          ??}

          ??public?static?String?getHour(){
          ????SimpleDateFormat?formatter;
          ????formatter?=?new?SimpleDateFormat?("H");
          ????String?ctime?=?formatter.format(new?Date());
          ????return?ctime;
          ????}

          ??public?static?String?getDay(){
          ??????SimpleDateFormat?formatter;
          ????formatter?=?new?SimpleDateFormat?("d");
          ????String?ctime?=?formatter.format(new?Date());
          ????return?ctime;
          ????}

          ??public?static?String?getMonth(){
          ????SimpleDateFormat?formatter;
          ????formatter?=?new?SimpleDateFormat?("M");
          ????String?ctime?=?formatter.format(new?Date());
          ????return?ctime;
          ????}
          ??

          ??public?static?String?getYear(){
          ????SimpleDateFormat?formatter;
          ????formatter?=?new?SimpleDateFormat?("yyyy");
          ????String?ctime?=?formatter.format(new?Date());
          ????return?ctime;
          ????}
          ??????
          ??public?static?String?getWeek(){
          ????SimpleDateFormat?formatter;
          ????formatter?=?new?SimpleDateFormat?("E");
          ????String?ctime?=?formatter.format(new?Date());
          ????return?ctime;
          ????}

          在jsp頁面中的日期格式和sqlserver中的日期格式不一樣,怎樣統一?


          在頁面上顯示輸出時,用下面的函數處理一下

          public class DateUtil(){
          ??? public static String fmtShortEnu(Date myDate) {
          ??? SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
          ??? String strDate = formatter.format(myDate);
          ??? return strDate;
          ? }
          }

          new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          new java.text.SimpleDateFormat("yyyy-MM-dd")
          建議還是把sqlserver的字段類型改成varchar的吧,用字符串處理可以完全按照自己的意愿處理,沒有特殊的需求,不要使用date型


          字串日期格式轉換
          用的API是SimpleDateFormat,它是屬於java.text.SimpleDateFormat,所以請記得import進來!

          用法:
          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          這一行最重要,它確立了轉換的格式,yyyy是完整的西元年,MM是月份,dd是日期, 至於HH:mm:ss就不需要我再解釋了吧!
          ps:為什麼有的格式大寫,有的格式小寫,那是怕避免混淆,例如MM是月份,mm是分;HH是24小時制,而hh是12小時制

          1.字串轉日期:
           2002-10-8 15:30:22要把它轉成日期,可以用
           Date date=sdf.parse("2002-10-8 15:30:22");
          2.日期轉字串
           假如把今天的日期轉成字串可用
           String datestr=sdf.format(new Date());
           這個字串的內容便類似2002-10-08 14:55:38

          透過這個API我們便可以隨心所欲的將日期轉成我們想要的字串格式,例如希望將日期輸出成2002年10月08日,
          我們可以這麼寫:
          SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
          String datestr=sdf.format(new Date());
          datestr便會依照我們設定的格式輸出


          //對日期格式的轉換成("yyyy-MM-dd")格式的方法
          public java.sql.Date Convert(String str)
          ? {
          ??? java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
          ??? try
          ??? {
          ????? java.util.Date d = sdf.parse(str);
          ????? java.sql.Date d1 = new java.sql.Date(d.getTime());
          ????? return d1;
          ??? }
          ??? catch(Exception ex)
          ??? {
          ????? ex.printStackTrace();
          ????? return null;
          ??? }
          ? }
          應用如下:
          ctmt.setDate(7,this.Convert(info.getManBirth()));? // @DATETIME

          posted on 2006-04-13 10:37 舵手 閱讀(4935) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 天峻县| 民丰县| 府谷县| 宽城| 星子县| 利川市| 山东省| 百色市| 兴山县| 长沙县| 资溪县| 神池县| 琼海市| 双鸭山市| 洪湖市| 盐池县| 漳浦县| 务川| 厦门市| 宝坻区| 洮南市| 普格县| 综艺| 绥芬河市| 玛纳斯县| 清水河县| 永修县| 新安县| 当阳市| 榆中县| 灵寿县| 普兰县| 武鸣县| 玉林市| 洛宁县| 松原市| 花莲县| 中方县| 天长市| 石家庄市| 云安县|