<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 14, 文章 - 39, 評(píng)論 - 17, 引用 - 0
    數(shù)據(jù)加載中……

    2006年10月16日

    TortoiseSVN 配合 Beyond Compare 3 或 WinMerge 的設(shè)置

    日常code工作中,比較麻煩的就是SVN版本沖突時(shí)的Merge了,因?yàn)門(mén)ortoiseSVN的比較工具只能比較,不能同時(shí)做Merge,
    一直以來(lái)總是在用WinMerge來(lái)擴(kuò)展TortoiseSVN本身的Differ,雖然方便很多,但是WinMerge和Beyond Compare 3比起來(lái)還是不夠強(qiáng)大,昨天查看了Beyond Compare 3的幫助文檔,試驗(yàn)結(jié)果比較理想,可以告別Merge的痛苦了,;-)。
    TortoiseSVN的設(shè)置如下:
    1.選擇TortoiseSVN-->Settings
     
    2.選擇Diff Viewer的設(shè)置項(xiàng),配置擴(kuò)展比較器的調(diào)用命令,WinMerge和Beyond Compare 3的調(diào)用字符串如下:
    WinMerge:C:\Program Files\WinMerge\WinMergeU.exe -e -x -ub -dl %bname -dr %yname %base %mine
    Beyond Compare 3:C:\Program Files\Beyond Compare 3\BComp.exe %mine %base
     

    posted @ 2009-03-12 22:08 mlw2000 閱讀(1252) | 評(píng)論 (0)編輯 收藏

    GMT和PST--關(guān)于時(shí)區(qū)的知識(shí)[轉(zhuǎn)]

    GMT和PST--關(guān)于時(shí)區(qū)的知識(shí)

    1、概念和換算
    2、日期中的時(shí)區(qū)標(biāo)志
    3、在Oracle 9i中正確轉(zhuǎn)換時(shí)區(qū)
    4、redhat9終端方式下更改時(shí)區(qū)
    5、java下的時(shí)區(qū)......
    GMT和PST--關(guān)于時(shí)區(qū)的知識(shí)

    我們?cè)诰W(wǎng)上瀏覽,在虛擬時(shí)空漫游世界時(shí),經(jīng)常會(huì)遇到時(shí)區(qū)的困擾,這篇文章是什么時(shí)間發(fā)布的?郵件是什么時(shí)間發(fā)出的?GMT和PST各代表什么意思,如何換算?等等.
    我通過(guò)互聯(lián)網(wǎng)搜集了一些小知識(shí),供大家參考。

    1、概念和換算
    PST - 美國(guó)太平洋標(biāo)準(zhǔn)時(shí)間
    GMT 格林威治標(biāo)準(zhǔn)時(shí)間


    幾個(gè)換算公式,因?yàn)槭?4進(jìn)制,看起來(lái)有點(diǎn)怪:
    (GMT +8)-16 =PST
    PST+7 = GMT
    PST+16 = GMT + 8(中國(guó))

    我們是東八區(qū),加州是西八區(qū),中間差16個(gè)小時(shí)。

    2、關(guān)于日期中的時(shí)區(qū)標(biāo)志。

    由于都在互聯(lián)網(wǎng)上,大家在各個(gè)時(shí)區(qū)的事件表示有所不同,因此日期要轉(zhuǎn)換到當(dāng)前時(shí)區(qū)的日期和時(shí)間,在互聯(lián)網(wǎng)上,大家一般都用CTS(世界標(biāo)準(zhǔn)時(shí)間)有稱作GMT(格林尼治時(shí)間)。
    譬如日期時(shí)間為:Sat, 30 Mar 2002 13:27:08 -0800,我們當(dāng)前所在的時(shí)區(qū)為正8區(qū)(北京時(shí)間),則用我們所在時(shí)區(qū)表示就是 Sat, 30 Mar 2002 29(13+16):27:08 即Sun, 31 Mar 2002 6:27:08 +8000。 ---??
    目前存在的時(shí)區(qū)有:
    GMT 格林威治標(biāo)準(zhǔn)時(shí)間 GMT
    UTC 全球標(biāo)準(zhǔn)時(shí)間 GMT
    ECT 歐洲中部時(shí)間 GMT+1:00
    EET 東歐時(shí)間 GMT+2:00
    ART (阿拉伯)埃及標(biāo)準(zhǔn)時(shí)間 GMT+2:00
    EAT 東非時(shí)間 GMT+3:00
    MET 中東時(shí)間 GMT+3:30
    NET 近東時(shí)間 GMT+4:00
    PLT 巴基斯坦拉合爾時(shí)間 GMT+5:00
    IST 印度標(biāo)準(zhǔn)時(shí)間 GMT+5:30
    BST 孟加拉國(guó)標(biāo)準(zhǔn)時(shí)間 GMT+6:00
    VST 越南標(biāo)準(zhǔn)時(shí)間 GMT+7:00
    CTT 中國(guó)臺(tái)灣時(shí)間 GMT+8:00
    JST 日本標(biāo)準(zhǔn)時(shí)間 GMT+9:00
    ACT 澳大利亞中部時(shí)間 GMT+9:30
    AET 澳大利亞?wèn)|部時(shí)間 GMT+10:00
    SST 所羅門(mén)標(biāo)準(zhǔn)時(shí)間 GMT+11:00
    NST 新西蘭標(biāo)準(zhǔn)時(shí)間 GMT+12:00
    MIT 中途島時(shí)間 GMT-11:00
    HST 夏威夷標(biāo)準(zhǔn)時(shí)間 GMT-10:00
    AST 阿拉斯加標(biāo)準(zhǔn)時(shí)間 GMT-9:00
    PST 太平洋標(biāo)準(zhǔn)時(shí)間 GMT-8:00
    PNT 菲尼克斯標(biāo)準(zhǔn)時(shí)間 GMT-7:00
    MST 西部山脈標(biāo)準(zhǔn)時(shí)間 GMT-7:00
    CST 中部標(biāo)準(zhǔn)時(shí)間 GMT-6:00
    EST 東部標(biāo)準(zhǔn)時(shí)間 GMT-5:00
    IET 印第安那東部標(biāo)準(zhǔn)時(shí)間 GMT-5:00
    PRT 波多黎各和美屬維爾京群島時(shí)間 GMT-4:00
    CNT 加拿大紐芬蘭時(shí)間 GMT-3:30
    AGT 阿根廷標(biāo)準(zhǔn)時(shí)間 GMT-3:00
    BET 巴西東部時(shí)間 GMT-3:00
    CAT 中非時(shí)間 GMT-1:00

    3、教你怎樣在Oracle 9i中正確轉(zhuǎn)換時(shí)區(qū)

    在Oracle9i之前,雖然有一個(gè)NEW_TIME函數(shù)可以改變DATE的時(shí)間戳部分,但是還沒(méi)有專門(mén)用來(lái)存儲(chǔ)時(shí)區(qū)信息的數(shù)據(jù)類型。在 Oracle9i 中,我們可以使用DBTIMEZONE偽字段查詢數(shù)據(jù)庫(kù)的時(shí)區(qū),使用SESSIONTIMEZONE偽字段查詢會(huì)話的時(shí)區(qū)。
    但是,對(duì)于大多數(shù)數(shù)據(jù)庫(kù),這些值都是-07:00之類的偏移值,因此對(duì)于NEW_TIME函數(shù)是沒(méi)有用的。Oracle9i有關(guān) NEW_TIME的文檔建議使用FROM_TZ來(lái)替代,但是這可能會(huì)產(chǎn)生誤導(dǎo)。FROM_TZ只將一個(gè)時(shí)區(qū)應(yīng)用到一個(gè)時(shí)間戳上;它并不能把一個(gè)時(shí)區(qū)轉(zhuǎn)換成 另外一個(gè)時(shí)區(qū)。
    其實(shí)有一個(gè)比較好的方法(從文檔中得到這個(gè)方法可能有點(diǎn)難)。首先,為了完成這個(gè)工作,在正確的時(shí)區(qū)內(nèi)需要一個(gè)TIMESTAMP WITH ZONE數(shù)據(jù)類型。然后,如果你將關(guān)鍵字AT TIME ZONE應(yīng)用到那個(gè)值,它就會(huì)自動(dòng)地調(diào)整為新的時(shí)區(qū)和日期。
    select (timestamp ';2003-04-06 01:59:59'; at time zone ';PDT';) at time zone ';GMT';   from dual;
    06-APR-03 08.59.59.00000000 AM GMT

    這個(gè)語(yǔ)句將為太平洋白天時(shí)間(即其切換到PST之前的時(shí)刻)構(gòu)造一個(gè)TIMESTAMP WITH TIME ZONE然后再將其轉(zhuǎn)換到GMT。AT TIME ZONE關(guān)鍵字也接受默認(rèn)的偏移值語(yǔ)法:
    select (timestamp ';2003-04-06 02:00:00'; at time zone ';-07:00';) at time zone   ';00:00'; from dual;
    06-APR-03 09.00.00.000000000 AM +00:00
    你還可以使用偽字段來(lái)自動(dòng)調(diào)整當(dāng)前會(huì)話的時(shí)區(qū):
    select current_timestamp at time zone dbtimezone from dual;
    上面的表達(dá)式返回一個(gè)當(dāng)前會(huì)話的本地時(shí)間(數(shù)據(jù)類型為時(shí)區(qū)),重新調(diào)整數(shù)據(jù)庫(kù)的時(shí)區(qū),調(diào)整后的時(shí)區(qū)將與SYSTIMESTAMP的結(jié)果相等。有了以上的這些信息,就可以構(gòu)造一個(gè)比較好的NEW_TIME函數(shù):
    create or replace function my_new_time (p_dwtz timestamp with time zone,     p_tz varchar2   ) return date is
    begin
    return cast(p_dwtz at time zone p_tz as date);
    end
    my_new_time;
    /
    show errors;
    select my_new_time(sysdate,';+08:00';) from dual;
    即使第一個(gè)參數(shù)被標(biāo)記為一個(gè)timestamp with time zone,你依然可以傳入一個(gè)TIMESTAMP和DATE,這樣由于Oracle的自動(dòng)轉(zhuǎn)型操作,得到的時(shí)間將是會(huì)話在本地時(shí)區(qū)的當(dāng)前時(shí)間。這個(gè)函數(shù)接 受包括偏移值在內(nèi)的任何可以被TIMESTAMP識(shí)別的時(shí)區(qū),然后將接受的時(shí)區(qū)調(diào)整為正確的值。

    posted @ 2009-03-07 12:32 mlw2000 閱讀(2475) | 評(píng)論 (0)編輯 收藏

    HTML Escape Characters: Complete List(html轉(zhuǎn)義字符列表)【轉(zhuǎn)】

         摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&g...  閱讀全文

    posted @ 2008-10-26 16:43 mlw2000 閱讀(2591) | 評(píng)論 (1)編輯 收藏

    javascript日期的常用計(jì)算

    其中function addDate()是從網(wǎng)上copy來(lái)的:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">
    <!--

    function testAddDate(){
        
    var usedate = document.all("doss_card.usedate").value;    
        
    var work_year = document.all("doss_card.work_year").value;

        
    var tempArry=usedate.split('-');
        
    var date=new Date(tempArry[0],tempArry[1]-1);

        
    var newdate = addDate(6,work_year,date);
        
    var limtyear=newdate.getYear() +'-+ (newdate.getMonth()+1);
        document.all(
    "doss_card.limit_month").value = limtyear;
    }

    function culEndDate(){
        
    var inputDate=document.all("rep_month_plan.start_date").value;
        
    var datePartArray=inputDate.split('-');
        
    //本月開(kāi)始的第一天
        var curFirstDay=new Date(datePartArray[0],datePartArray[1]-1);
        
    //下月開(kāi)始的第一天
        var nextFirstDay=addDate('5','1',curFirstDay);
        
    //下下月開(kāi)始的第一天
        var nnextFirstDay=addDate('5','2',curFirstDay);
        
    //本月最后一天
        var curEndDay= new Date(nextFirstDay.getTime()-1);
        
    //下月最后一天
        var nextEndDay= new Date(nnextFirstDay.getTime()-1);
        
        alert(nextEndDay);
        document.all(
    "rep_month_plan.curEnddate").value=curEndDay.getYear() +'-+  (curEndDay.getMonth()+1+ '-+curEndDay.getDate();
        document.all(
    "rep_month_plan.nextEnddate").value=nextEndDay.getYear() +'-+  (nextEndDay.getMonth()+1+ '-+nextEndDay.getDate();


    }


     
    function addDate(type,NumDay,vdate){
             
    var date=new Date(vdate);
            type 
    = parseInt(type) //類型 
             var lIntval = parseInt(NumDay)//間隔
                switch(type){
                     
    case 6 ://
                      date.setYear(date.getYear() + lIntval)
                      
    break;
                     
    case 7 ://季度
                      date.setMonth(date.getMonth() + (lIntval * 3) )
                      
    break;
                     
    case 5 ://
                      date.setMonth(date.getMonth() + lIntval)
                      
    break;
                     
    case 4 ://
                      date.setDate(date.getDate() + lIntval)
                      
    break
                     
    case 3 ://時(shí)
                      date.setHours(date.getHours() + lIntval)
                      
    break
                     
    case 2 ://
                      date.setMinutes(date.getMinutes() + lIntval)
                      
    break
                     
    case 1 ://
                      date.setSeconds(date.getSeconds() + lIntval)
                      
    break;
                     
    default:
                
              } 
        
    return date;
        
    //return date.getYear() +'-' +  (date.getMonth()+1) + '-' +date.getDate()+ ' '+ date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()
      } 

    //-->

    </SCRIPT>
    </HEAD>
    <FORM METHOD=POST ACTION="">
    doss_card.usedate:
    <INPUT TYPE="text" NAME="doss_card.usedate" value='2007-06'><BR>
    doss_card.work_year:
    <INPUT TYPE="text" NAME="doss_card.work_year" value='6'><BR>
    doss_card.limit_month:
    <INPUT TYPE="text" NAME="doss_card.limit_month"><BR>
    <INPUT TYPE="button" value='計(jì)算日期相加' onclick='testAddDate()'>
    <hr>
    當(dāng)前日期:
    <INPUT TYPE="text" NAME="rep_month_plan.start_date" value='2007-06-12'><BR>
    當(dāng)月末日期:
    <INPUT TYPE="text" NAME="rep_month_plan.curEnddate"><BR>
    下月末日期:
    <INPUT TYPE="text" NAME="rep_month_plan.nextEnddate" ><BR>
    <INPUT TYPE="button" value='計(jì)算月末日期' onclick='culEndDate()'>


    </FORM>
    <BODY>

    </BODY>
    </HTML>

    posted @ 2007-08-21 00:30 mlw2000 閱讀(4913) | 評(píng)論 (0)編輯 收藏

    【轉(zhuǎn)】《紫川》評(píng)語(yǔ)

    紫川----我最愛(ài)的小說(shuō)!告訴你一個(gè)普通少年在愛(ài)情與國(guó)家興亡間的感人抉擇,一本讓你看了一遍感動(dòng),看了兩遍偶爾心疼,看了三遍非哭不可的小說(shuō).這里有世間最真摯的友情,這里有不惜一切的愛(ài)情,這里更有超越所有種族的真情,,,有人說(shuō)紫川是一部史詩(shī),有人說(shuō)紫川是一部情感的百科全書(shū),還有人說(shuō)紫川只是流淌在生命中的切許感動(dòng)..我唯一想說(shuō)的是:金庸,古龍,老豬

    posted @ 2007-06-27 12:46 mlw2000 閱讀(301) | 評(píng)論 (0)編輯 收藏

    Java基礎(chǔ)問(wèn)題:漢字問(wèn)題深入談[轉(zhuǎn)]

    一、主題:關(guān)于JAVA的中文問(wèn)題?
    ??? JAVA的中文問(wèn)題比較突出,主要表現(xiàn)在控制面板輸出,JSP頁(yè)面輸出和數(shù)據(jù)庫(kù)訪問(wèn)上。本文盡量避開(kāi)字體問(wèn)題,而只談編碼。通過(guò)本文,你可以了解JAVA中文問(wèn)題的由來(lái),問(wèn)題的解決方法,其中提了一下用JDBC訪問(wèn)數(shù)據(jù)庫(kù)的方法。?

    二、問(wèn)題描述:?
    1)在中文W2000中文窗口編譯和運(yùn)行,用的是國(guó)際版的JDK,連接的是中文W2000下的Cp936編碼的SQL SERVER數(shù)據(jù)庫(kù):?

    J:exercisedemoencodeHelloWorld>make?
    ?? Created by XCompiler. PhiloSoft All Rights Reserved.?
    ?? Wed May 30 02:54:45 CST 2001?

    J:exercisedemoencodeHelloWorld>run?
    ?? Created by XRunner. PhiloSoft All Rights Reserved.?
    ?? Wed May 30 02:51:33 CST 2001?
    中文?
    [B@7bc8b569?
    [B@7b08b569?
    [B@7860b569?
    中文?
    中文?
    ?????
    中文?
    中文?
    ?????
    ???
    ???
    ???

    2)如果在中文W2000的西文窗口(編碼為437)下編譯,用JAVA運(yùn)行則由于無(wú)字體而無(wú)法正常顯示,如果象上面一樣在中文W2000的中文窗口運(yùn)行,輸出為:?

    J:exercisedemoencodeHelloWorld>run?
    ?? Created by XRunner. PhiloSoft All Rights Reserved.?
    ?? Wed May 30 02:51:33 CST 2001?
    ?????
    [B@7bc0b66a?
    [B@7b04b66a?
    [B@7818b66a?
    ?????
    ?????
    ?????
    ?????
    ?????
    ?????
    中文?
    中文?
    ?????

    三)分析?

    1)出現(xiàn)有亂碼(也就是?)。由于只出現(xiàn)?而沒(méi)出現(xiàn)小方框,說(shuō)明只是編碼有問(wèn)題,而不是字體問(wèn)題。 在編碼中,如果從一種字符集轉(zhuǎn)換到別一種字符集,比較典型的是從GB2312轉(zhuǎn)換到ISO8859_1(即ASCII),那么很多漢字(半個(gè)漢字)是無(wú)法映射到西文字符中去的,在這種情形下,系統(tǒng)就把這些字符用?代替。同樣,也存在小字符集無(wú)法到大字符集的情況,具體原因這里就不詳談了。?

    2)出現(xiàn)了中文環(huán)境編譯,中文環(huán)境運(yùn)行時(shí)漢字顯示有正確也有不正確的地方,同樣,在西文環(huán)境下編譯,在中文環(huán)境下運(yùn)行時(shí)也出現(xiàn)類似情況。這是由于自動(dòng)(默認(rèn))或手工(也就new String(bytes[,encode])和bytes getBytes([encode]))轉(zhuǎn)碼的結(jié)果。?

    2.1)在JAVA源文件-->JAVAC-->Class-->Java-->getBytes()-->new String()-->顯示的過(guò)程中,每一步都有編碼的轉(zhuǎn)換過(guò)程,這個(gè)過(guò)程總是存在的,只是有的時(shí)候用默認(rèn)的參數(shù)進(jìn)行。下面我們一步一步分析為什么出現(xiàn)上面的情形。?

    2.2)這里是源代碼:?

    HelloWorld.java:?
    ------------------------?
    public class HelloWorld?
    {?
    ??? public static void main(String[] argv)
    ??? {?
    ??????? try
    ??????? {?
    ??????????? System.out.println("1:"+"中文");
    ??????????? System.out.println("2:"+"中文".getBytes());
    ??????????? System.out.println("3:"+"中文".getBytes("GB2312"));?
    ??????????? System.out.println("4:"+"中文".getBytes("ISO8859_1"));

    ??????????? System.out.println("5:"+new String("中文".getBytes()));//5?
    ??????????? System.out.println("6:"+new String("中文".getBytes(),"GB2312"));?
    ??????????? System.out.println("7:"+new String("中文".getBytes(),"ISO8859_1"));

    ??????????? System.out.println("8:"+new String("中文".getBytes("GB2312")));//8?
    ??????????? System.out.println("9:"+new String("中文".getBytes("GB2312"),"GB2312"));
    ??????????? System.out.println("10:"+new String("中文".getBytes("GB2312"),"ISO8859_1"));

    ??????????? System.out.println("11:"+new String("中文".getBytes("ISO8859_1")));//11?
    ??????????? System.out.println("12:"+new String("中文".getBytes("ISO8859_1"),"GB2312"));
    ??????????? System.out.println("13:"+new String("中文".getBytes("ISO8859_1"),"ISO8859_1"));
    ??????? }?
    ??????? catch(Exception e)
    ??????? {?
    ??????????? e.printStackTrace();?
    ??????? }?
    ? }?
    }?

    為了方便起見(jiàn),在每個(gè)轉(zhuǎn)換的后面加了操作序號(hào),分別為1,2,...,13。?

    2.3)需要說(shuō)明的是,JAVAC是以系統(tǒng)默認(rèn)編碼讀入源文件,然后按UNICODE進(jìn)行編碼的。在JAVA運(yùn)行的時(shí)候,JAVA也是采用UNICODE編碼的,并且默認(rèn)輸入和輸出的都是操作系統(tǒng)的默認(rèn)編碼,也就是說(shuō)在new String(bytes[,encode])中,系統(tǒng)認(rèn)為輸入的是編碼為encode的字節(jié)流,換句話說(shuō),如果按encode來(lái)翻譯bytes才能得到正確的結(jié)果,這個(gè)結(jié)果最后要在JAVA中保存,它還是要從這個(gè)encode轉(zhuǎn)換成Unicode,也就是說(shuō)有bytes-->encode字符-->Unicode字符的轉(zhuǎn)換;而在String.getBytes([encode])中,系統(tǒng)要做一個(gè)Unicode字符-->encode字符-->bytes的轉(zhuǎn)換。?

    在這個(gè)例子中,除那個(gè)英文窗口編碼的時(shí)候除外,其實(shí)情形下默認(rèn)編碼都是GBK(在本例中,我們暫且把GBK和GB2312等同看待)。?

    2.4)由于在未指明在上面的兩個(gè)用代碼實(shí)現(xiàn)的轉(zhuǎn)換中,如果未指定encode,系統(tǒng)將采用默認(rèn)的編碼(這里為GBK),我們認(rèn)為上面的5,6,7和8,9,10是一樣的,8和9、11和12也是一樣的,所以我們?cè)谟懻撝袑⒅挥懻?,9,10,12,13。其中的2,3,4只是用于測(cè)試,不在我們的討論范圍之內(nèi)。?

    2.5)下面我們來(lái)跟蹤程序中的“中”字的轉(zhuǎn)換歷程,我們先說(shuō)在中文窗口下作的編譯和運(yùn)行過(guò)程,注意在下面的字母下標(biāo)中,我有意識(shí)地使用了一些數(shù)字,以表示相同,相異還是相關(guān)2.5.1)我們先以上面的13個(gè)代碼段中的的代碼9為例:?

    步驟 內(nèi)容 地點(diǎn) 說(shuō)明?
    01: C1 HelloWorld.java C1泛指一個(gè)GBK字符?
    02: U1 JAVAC讀取 U1泛指一個(gè)Unicode字符?
    03: C1 getBytes()第一步 JAVA先和操作系統(tǒng)交流?
    04: B1,B2 getBytes()第二步 然后返回字節(jié)數(shù)組?
    05: C1 new String()第一步 JAVA先和操作系統(tǒng)交流?
    06: U1 new String()第二步 然后返回字符?
    07: C1 println(String) 能顯示“中”字,內(nèi)容和原來(lái)的相同?

    2.5.2)然后再以代碼段10為例,我們注意到只是:?

    步驟 內(nèi)容 地點(diǎn) 說(shuō)明?
    01: C1 HelloWorld.java C1泛指一個(gè)GBK字符?
    02: U1 JAVAC讀取 U1泛指一個(gè)Unicode字符?
    03: C1 getBytes()第一步 JAVA先和操作系統(tǒng)交流?
    04: B1,B2 getBytes()第二步 然后返回字節(jié)數(shù)組?
    05: C3,C4 new String()第一步 JAVA先和操作系統(tǒng)交流,這時(shí)解析錯(cuò)誤?
    06: U5,U6 new String()第二步 然后返回字符?
    07: C3,C4 println(String) 由于中字給分成了兩半,在ISO8859_1中剛好也沒(méi)有字符?

    能映射上,所以顯示為“??”。在上面的示例中,?
    “中文”兩個(gè)字就顯示為“????”?
    2.5.3)在完全中文模式下的其它情形類似,我就不多說(shuō)了?

    2.6)我們接著看為什么在西文DOS窗口下編譯出來(lái)的類在中文窗口下也出現(xiàn)類似情形,特別是為什么居然有的情形下還能正確顯示漢字。?

    2.6.1)我們還是先以代碼段9為例:?

    步驟 內(nèi)容 地點(diǎn) 說(shuō)明?
    01: C1C2 HelloWorld.java C1C2分別泛指一個(gè)ISO8859_1字符,“中”字被拆開(kāi)?
    02: U3U4 JAVAC讀取 U1U2泛指一個(gè)Unicode字符?
    03: C5C6 getBytes()第一步 JAVA先和操作系統(tǒng)交流,這時(shí)解析錯(cuò)誤?
    04: B5B6B7B8 getBytes()第二步 然后返回字節(jié)數(shù)組?
    05: C5C6 new String()第一步 JAVA先和操作系統(tǒng)交流?
    06: U3U4 new String()第二步 然后返回字符?
    07: C5C6 println(String) 雖然同是兩個(gè)字符,但已不是最初的“兩個(gè)ISO8859_1字?

    符”,而是“兩個(gè)BGK字符”,“中”顯示成了“??”?
    而“中文”就顯示成了“????”?

    2.6.2)下面我們以代碼段12為例,因?yàn)樗苷_顯示漢字?

    步驟 內(nèi)容 地點(diǎn) 說(shuō)明?

    01: C1C2 HelloWorld.java C1C2分別泛指一個(gè)ISO8859_1字符,“中”字被拆開(kāi)?
    02: U3U4 JAVAC讀取 U1U2泛指一個(gè)Unicode字符
    03: C1C2 getBytes()第一步 JAVA先和操作系統(tǒng)交流(注意還是正確的哦?。?
    04: B5B6 getBytes()第二步 然后返回字節(jié)數(shù)組(這是很關(guān)鍵的一步!)?
    05: C12 new String()第一步 JAVA先和操作系統(tǒng)交流(這是更關(guān)鍵的一步,JAVA已經(jīng)知道B5B6要解析成一個(gè)漢字?。?
    06: U7 new String()第二步 然后返回字符(真是一個(gè)項(xiàng)兩!U7包含了U3U4的信息)?
    07: C12 println(String) 這就原來(lái)的“中”字,很委屈被JAVAC冤枉了一回,不過(guò)被程序員撥亂反正了一下!當(dāng)然,“中文”兩個(gè)字都能正確顯示了!?

    3)那為什么有的時(shí)候用JDBC的?
    new String(Recordset.getBytes(int)[,encode])?
    Recordset.getSting(int)?
    Recordset.setBytes(String.getBytes([encode]))?
    和?
    Recordset.setString(String)?
    的時(shí)候會(huì)出現(xiàn)亂碼了呢??

    其實(shí)問(wèn)題就出現(xiàn)在編寫(xiě)JDBC的的也考慮了編碼問(wèn)題,它從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)后,可能自作主張做了一個(gè)從GB2312(默認(rèn)編碼)到Unicode的轉(zhuǎn)換,我的這個(gè)WebLogic For SQL Server的JDBC Driver就是這樣的,當(dāng)我讀字串的時(shí)候,發(fā)出讀到的不是正確的漢字,可恨的是我卻可以直接寫(xiě)漢字字串,這讓人多少有點(diǎn)難以接受!?
    也就是說(shuō),我們不得不在讀或?qū)懙臅r(shí)候進(jìn)行轉(zhuǎn)碼,盡管這個(gè)轉(zhuǎn)碼有的時(shí)候不是那么明顯,這是因?yàn)槲覀兪褂昧四J(rèn)的編碼進(jìn)行轉(zhuǎn)碼。JDBC Driver所做的操作,我們只有進(jìn)入到源代碼內(nèi)部才能清楚,大家認(rèn)為呢?

    posted @ 2007-03-21 09:18 mlw2000 閱讀(407) | 評(píng)論 (0)編輯 收藏

    如何修改eclipse中的"Mark occurence highlight colour"(即“標(biāo)記當(dāng)前高亮”的顏色)[轉(zhuǎn)]

    搜了半天終于找到了:
    Hi

    The 'mark occurences' feature is really useful, unfortunately it is a light shade of yellow and the window colour is a light beige, therefore it doesn't show up. The only way I can find the occurences is to move my mouse cursor up and down the margin until it becomes a hand.

    I have looked all through all the preferences and I can't see how to change that colour. Is it a system colour, or FDT, and is it actually possible to change?

    Any help gratefully appreciated.
    Jake


    ============================================================
    Here is the way you can change the color:

    1. Select the Menu Window->Preferences
    2. Select in the tree General->Editors->Text Editors->Annotations
    3. Select AS Occurence
    4. At the right there is a small Button Color, klick it and select a new color.


    剛剛試過(guò),eclipse 3.20能用此方法修改

    posted @ 2007-03-17 00:31 mlw2000 閱讀(2429) | 評(píng)論 (6)編輯 收藏

    關(guān)于讀取文件內(nèi)容時(shí)報(bào)sun.io.MalformedInputException的問(wèn)題 [轉(zhuǎn)]

    在網(wǎng)上找到的原因是這樣的:
    這個(gè)問(wèn)題產(chǎn)生的原因是IBM在JDK 1.4版本中為了追求對(duì)io通道的高效率改變了JDK 1.3中對(duì)io通道中異常處理的策略。IBM JDK 1.4中對(duì)于io通道的異常處理更加嚴(yán)格,因此系統(tǒng)中會(huì)報(bào)上面的錯(cuò)誤。
    解決這一問(wèn)題的辦法是不使用IBM JDK 1.4中默認(rèn)的io通道,而使用nio通道。具體的做法如下:
    1.打開(kāi)管理控制臺(tái),找到并選擇運(yùn)行這個(gè)JSP的應(yīng)用服務(wù)器
    2.依次選擇進(jìn)程定義,java虛擬機(jī),一般JVM自變量
    3.添加-Dibm.stream.nio=true
    4.確定,保存
    5.重新啟動(dòng)該服務(wù)器

    本來(lái)我就懷疑又是IBM JDK的問(wèn)題,果然被我不幸言中了,再次表示一下郁悶!

    我發(fā)現(xiàn)在我需要讀取的文件當(dāng)中存在這樣的一些亂碼字符

    我原來(lái)是用下面這段程序讀取這個(gè)文件的內(nèi)容并打印的:
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);
    String str="";
    String result = "";
    while((str=br.readLine())!=null){
        result += str + "\n";
    }
    即逐行讀取的方法,我想也是一般的方法,但是就是這個(gè)readline方法導(dǎo)致了IBM JDK 1.4.2 報(bào)了這個(gè)sun.io.MalformedInputException的問(wèn)題.

    我現(xiàn)在使用的解決方法如下:
    String result = "";
    StringBuffer sBuffer=new StringBuffer();
    FileInputStream fis=new FileInputStream(file);
    BufferedInputStream bis=new BufferedInputStream(fis);
    String tempStr;
    byte[] b = new byte[1024];
    int i = 0;
    while ((i = bis.read(b)) > 0) {
        tempStr=new String(b,0,i);
        sBuffer.append(tempStr);
    }
    result = sBuffer.toString();

    即逐字節(jié)讀取的方法.這樣處理就可以正常讀取了!

    具體到底為什么會(huì)出現(xiàn)這種問(wèn)題現(xiàn)在還沒(méi)弄明白,估計(jì)也弄不明白了!

    posted @ 2007-03-01 10:08 mlw2000 閱讀(3760) | 評(píng)論 (4)編輯 收藏

    Oracle關(guān)于時(shí)間/日期的操作 (轉(zhuǎn))

    Oracle關(guān)于時(shí)間/日期的操作

    1.日期時(shí)間間隔操作

    當(dāng)前時(shí)間減去7分鐘的時(shí)間
    select? sysdate,sysdate - interval '7' MINUTE? from dual
    當(dāng)前時(shí)間減去7小時(shí)的時(shí)間
    select? sysdate - interval '7' hour? from dual
    當(dāng)前時(shí)間減去7天的時(shí)間
    select? sysdate - interval '7' day? from dual
    當(dāng)前時(shí)間減去7月的時(shí)間
    select? sysdate,sysdate - interval '7' month from dual
    當(dāng)前時(shí)間減去7年的時(shí)間
    select? sysdate,sysdate - interval '7' year?? from dual
    時(shí)間間隔乘以一個(gè)數(shù)字
    select? sysdate,sysdate - 8 *interval '2' hour?? from dual

    2.日期到字符操作
    select? sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')? from dual
    select? sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss')? from dual
    select? sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss')? from dual
    select? sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss')? from dual
    ?? 參考o(jì)racle的相關(guān)關(guān)文檔(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)

    3. 字符到日期操作
    select? to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual
    具體用法和上面的to_char差不多。

    4. trunk/ ROUND函數(shù)的使用
    select? trunc(sysdate ,'YEAR')? from dual
    select? trunc(sysdate )? from dual
    select? to_char(trunc(sysdate ,'YYYY'),'YYYY')? from? dual

    5.oracle有毫秒級(jí)的數(shù)據(jù)類型
    --返回當(dāng)前時(shí)間 年月日小時(shí)分秒毫秒
    select to_char(current_timestamp(5),'DD-MON-YYYY HH24:MI:SSxFF') from dual;
    --返回當(dāng)前 時(shí)間的秒毫秒,可以指定秒后面的精度(最大=9)
    select to_char(current_timestamp(9),'MI:SSxFF') from dual;

    6.計(jì)算程序運(yùn)行的時(shí)間(ms)
    declare
    ??? type rc is ref cursor;
    ??? l_rc rc;
    ??? l_dummy all_objects.object_name%type;
    ??? l_start number default dbms_utility.get_time;
    begin
    ??? for? I? in 1 .. 1000
    ??? loop
    ??????? open l_rc for
    ????????? 'select object_name? from all_objects '||

    'where object_id = ' || i;
    ??????? fetch l_rc into l_dummy;
    ??????? close l_rc;
    ??? end loop;
    ??? dbms_output.put_line
    ??? ( round( (dbms_utility.get_time-l_start)/100, 2 ) ||
    ????? ' seconds...' );
    end;

    posted @ 2007-02-15 16:04 mlw2000 閱讀(231) | 評(píng)論 (0)編輯 收藏

    DB2中有關(guān)日期和時(shí)間的函數(shù),及應(yīng)用(轉(zhuǎn))

    DAYNAME?????????返回一個(gè)大小寫(xiě)混合的字符串,對(duì)于參數(shù)的日部分,用星期表示這一天的名稱(例如,F(xiàn)riday)。??
    DAYOFWEEK????返回參數(shù)中的星期幾,用范圍在?1-7?的整數(shù)值表示,其中?1?代表星期日。??
    DAYOFWEEK_ISO?返回參數(shù)中的星期幾,用范圍在?1-7?的整數(shù)值表示,其中?1?代表星期一。??
    DAYOFYEAR??????????返回參數(shù)中一年中的第幾天,用范圍在?1-366?的整數(shù)值表示。??
    DAYS?????????????????????返回日期的整數(shù)表示。??
    JULIAN_DAY?????????返回從公元前?4712?年?1?月?1?日(儒略日歷的開(kāi)始日期)到參數(shù)中指定日期值之間的天數(shù),用整數(shù)值表示。??
    MIDNIGHT_SECONDS??返回午夜和參數(shù)中指定的時(shí)間值之間的秒數(shù),用范圍在?0?到?86400?之間的整數(shù)值表示。??
    MONTHNAME???????????????對(duì)于參數(shù)的月部分的月份,返回一個(gè)大小寫(xiě)混合的字符串(例如,January)。??
    TIMESTAMP_ISO?????????根據(jù)日期、時(shí)間或時(shí)間戳記參數(shù)而返回一個(gè)時(shí)間戳記值。??
    TIMESTAMP_FORMAT?從已使用字符模板解釋的字符串返回時(shí)間戳記。??
    TIMESTAMPDIFF????????根據(jù)兩個(gè)時(shí)間戳記之間的時(shí)差,返回由第一個(gè)參數(shù)定義的類型表示的估計(jì)時(shí)差。??
    TO_CHAR???????????????????返回已用字符模板進(jìn)行格式化的時(shí)間戳記的字符表示。TO_CHAR?是?VARCHAR_FORMAT?的同義詞。??
    TO_DATE??????????????????從已使用字符模板解釋過(guò)的字符串返回時(shí)間戳記。TO_DATE?是?TIMESTAMP_FORMAT?的同義詞。??
    WEEK?????????????????????返回參數(shù)中一年的第幾周,用范圍在?1-54?的整數(shù)值表示。以星期日作為一周的開(kāi)始。??
    WEEK_ISO????????????返回參數(shù)中一年的第幾周,用范圍在?1-53?的整數(shù)值表示。

    要使當(dāng)前時(shí)間或當(dāng)前時(shí)間戳記調(diào)整到?GMT/CUT,則把當(dāng)前的時(shí)間或時(shí)間戳記減去當(dāng)前時(shí)區(qū)寄存器:?
    current?time?-?current?timezone?
    current?timestamp?-?current?timezone?

    給定了日期、時(shí)間或時(shí)間戳記,則使用適當(dāng)?shù)暮瘮?shù)可以單獨(dú)抽取出(如果適用的話)年、月、日、時(shí)、分、秒及微秒各部分:?
    YEAR?(current?timestamp)?
    MONTH?(current?timestamp)?
    DAY?(current?timestamp)?
    HOUR?(current?timestamp)?
    MINUTE?(current?timestamp)?
    SECOND?(current?timestamp)?
    MICROSECOND?(current?timestamp)?

    因?yàn)闆](méi)有更好的術(shù)語(yǔ),所以您還可以使用英語(yǔ)來(lái)執(zhí)行日期和時(shí)間計(jì)算:?
    current?date?+?1?YEAR?
    current?date?+?3?YEARS?+?2?MONTHS?+?15?DAYS?
    current?time?+?5?HOURS?-?3?MINUTES?+?10?SECONDS?

    從時(shí)間戳記單獨(dú)抽取出日期和時(shí)間也非常簡(jiǎn)單:?
    DATE?(current?timestamp)?
    TIME?(current?timestamp)

    而以下示例描述了如何獲得微秒部分歸零的當(dāng)前時(shí)間戳記:?

    CURRENT?TIMESTAMP?-?MICROSECOND?(current?timestamp)?MICROSECONDS?

    如果想將日期或時(shí)間值與其它文本相銜接,那么需要先將該值轉(zhuǎn)換成字符串。為此,只要使用?CHAR()?函數(shù):?

    char(current?date)?
    char(current?time)?
    char(current?date?+?12?hours)?

    要將字符串轉(zhuǎn)換成日期或時(shí)間值,可以使用:?

    TIMESTAMP?('2002-10-20-12.00.00.000000')?
    TIMESTAMP?('2002-10-20?12:00:00')?
    DATE?('2002-10-20')?
    DATE?('10/20/2002')?
    TIME?('12:00:00')?
    TIME?('12.00.00')?

    TIMESTAMP()、DATE()?和?TIME()?函數(shù)接受更多種格式。上面幾種格式只是示例,我將把它作為一個(gè)練習(xí),讓讀者自己去發(fā)現(xiàn)其它格式。?

    有時(shí),您需要知道兩個(gè)時(shí)間戳記之間的時(shí)差。為此,DB2?提供了一個(gè)名為?TIMESTAMPDIFF()?的內(nèi)置函數(shù)。但該函數(shù)返回的是近似值,因?yàn)樗豢紤]閏年,而且假設(shè)每個(gè)月只有?30?天。以下示例描述了如何得到兩個(gè)日期的近似時(shí)差:?

    timestampdiff?(<n>,?char(?
    timestamp('2002-11-30-00.00.00')-?
    timestamp('2002-11-08-00.00.00')))?

    對(duì)于?<n>,可以使用以下各值來(lái)替代,以指出結(jié)果的時(shí)間單位:?

    1?=?秒的小數(shù)部分??
    2?=?秒??
    4?=?分??
    8?=?時(shí)??
    16?=?天??
    32?=?周??
    64?=?月??
    128?=?季度??
    256?=?年??
    當(dāng)日期很接近時(shí)使用?timestampdiff()?比日期相差很大時(shí)精確。如果需要進(jìn)行更精確的計(jì)算,可以使用以下方法來(lái)確定時(shí)差(按秒計(jì)):?

    (DAYS(t1)?-?DAYS(t2))?*?86400?+???
    (MIDNIGHT_SECONDS(t1)?-?MIDNIGHT_SECONDS(t2))?

    為方便起見(jiàn),還可以對(duì)上面的方法創(chuàng)建?SQL?用戶定義的函數(shù):?

    CREATE?FUNCTION?secondsdiff(t1?TIMESTAMP,?t2?TIMESTAMP)?
    RETURNS?INT?
    RETURN?(?
    (DAYS(t1)?-?DAYS(t2))?*?86400?+???
    (MIDNIGHT_SECONDS(t1)?-?MIDNIGHT_SECONDS(t2))?
    )?
    @?

    如果需要確定給定年份是否是閏年,以下是一個(gè)很有用的?SQL?函數(shù),您可以創(chuàng)建它來(lái)確定給定年份的天數(shù):?

    CREATE?FUNCTION?daysinyear(yr?INT)?
    RETURNS?INT?
    RETURN?(CASE?(mod(yr,?400))?WHEN?0?THEN?366?ELSE??
    ????????CASE?(mod(yr,?4))???WHEN?0?THEN??
    ????????CASE?(mod(yr,?100))?WHEN?0?THEN?365?ELSE?366?END??
    ????????ELSE?365?END?
    END)@?

    最后,以下是一張用于日期操作的內(nèi)置函數(shù)表。它旨在幫助您快速確定可能滿足您要求的函數(shù),但未提供完整的參考。有關(guān)這些函數(shù)的更多信息,請(qǐng)參考?SQL?參考大全。?

    SQL?日期和時(shí)間函數(shù)??
    DAYNAME?返回一個(gè)大小寫(xiě)混合的字符串,對(duì)于參數(shù)的日部分,用星期表示這一天的名稱(例如,F(xiàn)riday)。??
    DAYOFWEEK?返回參數(shù)中的星期幾,用范圍在?1-7?的整數(shù)值表示,其中?1?代表星期日。??
    DAYOFWEEK_ISO?返回參數(shù)中的星期幾,用范圍在?1-7?的整數(shù)值表示,其中?1?代表星期一。??
    DAYOFYEAR?返回參數(shù)中一年中的第幾天,用范圍在?1-366?的整數(shù)值表示。??
    DAYS?返回日期的整數(shù)表示。??
    JULIAN_DAY?返回從公元前?4712?年?1?月?1?日(儒略日歷的開(kāi)始日期)到參數(shù)中指定日期值之間的天數(shù),用整數(shù)值表示。??
    MIDNIGHT_SECONDS?返回午夜和參數(shù)中指定的時(shí)間值之間的秒數(shù),用范圍在?0?到?86400?之間的整數(shù)值表示。??
    MONTHNAME?對(duì)于參數(shù)的月部分的月份,返回一個(gè)大小寫(xiě)混合的字符串(例如,January)。??
    TIMESTAMP_ISO?根據(jù)日期、時(shí)間或時(shí)間戳記參數(shù)而返回一個(gè)時(shí)間戳記值。??
    TIMESTAMP_FORMAT?從已使用字符模板解釋的字符串返回時(shí)間戳記。??
    TIMESTAMPDIFF?根據(jù)兩個(gè)時(shí)間戳記之間的時(shí)差,返回由第一個(gè)參數(shù)定義的類型表示的估計(jì)時(shí)差。??
    TO_CHAR?返回已用字符模板進(jìn)行格式化的時(shí)間戳記的字符表示。TO_CHAR?是?VARCHAR_FORMAT?的同義詞。??
    TO_DATE?從已使用字符模板解釋過(guò)的字符串返回時(shí)間戳記。TO_DATE?是?TIMESTAMP_FORMAT?的同義詞。??
    WEEK?返回參數(shù)中一年的第幾周,用范圍在?1-54?的整數(shù)值表示。以星期日作為一周的開(kāi)始。??
    WEEK_ISO?返回參數(shù)中一年的第幾周,用范圍在?1-53?的整數(shù)值表示。

    posted @ 2007-02-15 15:25 mlw2000 閱讀(1700) | 評(píng)論 (1)編輯 收藏

    八種不可追隨的老板

         摘要: 八種不可追隨的老板  閱讀全文

    posted @ 2006-12-03 10:18 mlw2000 閱讀(291) | 評(píng)論 (0)編輯 收藏

    職場(chǎng)人必看的12個(gè)寓言故事

         摘要: 職場(chǎng)人必看的12個(gè)寓言故事  閱讀全文

    posted @ 2006-12-03 10:16 mlw2000 閱讀(273) | 評(píng)論 (0)編輯 收藏

    Struts中 "load-on-startup "參數(shù)的意義

         摘要: Struts中 "load-on-startup "參數(shù)的意義  閱讀全文

    posted @ 2006-10-16 11:17 mlw2000 閱讀(1417) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲欧洲第一a在线观看| 久久精品夜色噜噜亚洲A∨| 国产不卡免费视频| 国产L精品国产亚洲区久久| 亚洲成AV人片天堂网无码| 亚洲日韩中文字幕| 亚洲狠狠婷婷综合久久蜜芽| 一级日本高清视频免费观看| 99精品视频在线视频免费观看 | 日本卡1卡2卡三卡免费| 中文永久免费观看网站| 久久不见久久见免费视频7| 最近中文字幕mv免费高清电影| 日韩亚洲精品福利| 亚洲Aⅴ无码专区在线观看q| 亚洲www77777| 中文字幕无码免费久久9一区9 | 亚洲精品国产va在线观看蜜芽| 亚洲香蕉成人AV网站在线观看| 亚洲资源在线视频| 免费一级特黄特色大片| 无码精品一区二区三区免费视频 | 亚洲区不卡顿区在线观看| 亚洲一区二区三区夜色| 大桥未久亚洲无av码在线| 黄色片免费在线观看| 成年女人看片免费视频播放器| 久久久久久A亚洲欧洲AV冫| 亚洲a∨无码男人的天堂| 黄视频在线观看免费| 毛片基地免费视频a| 亚洲精品成人网站在线观看| 亚洲国产精品美女久久久久| 男人进去女人爽免费视频国产 | 亚洲AV中文无码乱人伦下载| 亚洲一级片在线观看| 国产精品免费视频观看拍拍| 91视频国产免费| 亚洲成AV人片在WWW色猫咪| 日韩亚洲翔田千里在线| 91在线手机精品免费观看|