C# 日期操作

一、獲得日期的方法:

DateTime.Now;本身獲得的就是本地的當前日期和時間,一般都是以本地的短日期時間格式顯示

DateTime.UtcNow 獲得的纔會是UTC時間!

所以所有的操作基本都用DateTime.Now就可以了,不用考慮是否要轉化成本地時間了;

日期類型的ToString()方法接收的參數和其它類型的ToString()不一樣;

其它類型,例如數值型(一定要是數值型的,不然不起作用)的ToString()可接受:“N”,(具體可參考本文最後部分)

以下是日期格式化是的精簡的參數,用他們可以很方便的得到想要的格式;問題就是這些參數比較難記住,所以也附上另外一種比較直觀的方法

  1. //2012-3-23   
        string short1 = System.DateTime.Now.ToString("d");
        string simple1 = System.DateTime.Now.ToString("yyyy-MM-dd");

        //2012年3月23日 16:30:15   
        string short2 = System.DateTime.Now.ToString("F");
        string simple2 = System.DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");

        //2012年3月23日 16:30   
        string short3 = System.DateTime.Now.ToString("f");
        string simple3 = System.DateTime.Now.ToString("yyyy年MM月dd日 HH:mm");

        //2012-3-23 16:30:15   
        string short4= System.DateTime.Now.ToString("G");
        string simple4 = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     
        //2012-3-23 16:30   
       string short5 = System.DateTime.Now.ToString("g");
       string simple5 = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm");
     
        //16:30:15   
        string short6 = System.DateTime.Now.ToString("T");
        string simple6 = System.DateTime.Now.ToString("HH:mm:ss");
     
        //16:30   
        string short7= System.DateTime.Now.ToString("t");
        string simple7 = System.DateTime.Now.ToString("HH:mm");
     
        //2012年3月23日 8:30:15   
        string short8 = System.DateTime.Now.ToString("U");
        string simple8 = System.DateTime.Now.ToUniversalTime().ToString("yyyy年MM月dd日 HH:mm:ss");

        //2012-03-23 16:30:15Z   
        string short9 = System.DateTime.Now.ToString("u");
        string simple9 = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     
     
        //4月24日   
        string short10 = System.DateTime.Now.ToString("m");
        string short100 = System.DateTime.Now.ToString("M");

        string simple10 = System.DateTime.Now.ToString("MM月dd日");

        //Tue, 24 Apr 2012 16:30:15 GMT   
        string short12 = System.DateTime.Now.ToString("r");
        string short122 = System.DateTime.Now.ToString("R");
        //string simple12 = System.DateTime.Now.ToString("f");

        //2012年3月   
        string short13 = System.DateTime.Now.ToString("y");
        string short133 = System.DateTime.Now.ToString("Y");
        string simple13 = System.DateTime.Now.ToString("yyyy年MM月");

        //2012-03-23T15:52:19.1562500+08:00   
        string short14 = System.DateTime.Now.ToString("o");
        string short144 = System.DateTime.Now.ToString("O");
        string simple14 = System.DateTime.Now.ToString("f");

        //2012-03-23T16:30:15   
        string short15 = System.DateTime.Now.ToString("s");
        string simple15 = System.DateTime.Now.ToString("f");

注意以下兩種格式,一個用‘/'分割,一個用’-‘分割,但是我測試的是用’/' 作爲分割符的時候不起作用,最終的仍然是以‘-’分割;對於yyyy/MM/dd的格式,可以隨意的調整他們的順序到你想要的效果,例如可以這樣寫MM-dd-yyyy,也可以這樣dd-MM-yyyy(但是這樣是沒有什麼意義的),如果想要月份03表示成3,則只需減少一個M就可以了:yyyy-M-dd

①:string nowTime = DateTime.Now.ToLocalTime().ToString("yyyy-MM-dd");

②:string nowTime = DateTime.Now.ToLocalTime().ToString("yyyy/MM/dd HH:mm:ss");

二、日期的操作

/n爲一個數,可以數整數,也可以是小數

DateTime dt = System.DateTime.Now;

dt.AddYears(n).ToString();        //時間加n年     
dt.AddDays(n).ToString();        //加n天     
dt.AddHours(n).ToString();        //加n小時     
dt.AddMonths(n).ToString();        //加n個月     
dt.AddSeconds(n).ToString();        //加n秒     
dt.AddMinutes(n).ToString();        //加n分


我們可能需要將數值以一定的格式來呈現,就需要對數值進行格式化。我們使用格式字符串指定格式。格式字符串採用以下形式:Xn,其中 X爲格式說明符,指定格式化類型,n 爲精度說明符,控制格式化輸出的有效位數或小數位數。

格式說明符
說明
示例
輸出
C
貨幣
2.5.ToString("C")
¥2.50
D
十進制數
25.ToString("D5")
00025
E
科學型
25000.ToString("E")
2.500000E+005
F
固定點
25.ToString("F2")
25.00
G
常規
2.5.ToString("G")
2.5
N
數字
2500000.ToString("N")
2,500,000.00
X
十六進制
255.ToString("X")
FF
    當然,使用的時候要注意了,標題也寫得很清楚了,是格式化數值,要是不是數值的話就不起作用了。可能你會說8.3肯定是數值了,但是卻可能不是,因爲這裏說的數值,是指的格式。如:
    decimal a = 8.3;
    string b = "8.3";
    a.ToString("F2") == "8.30";
    b.ToString("F2") == "8.3";
    通常我們有好多時候是從數據庫裏面讀取的值,所以使用格式化數值的時候一定要清楚那個字段的數據格式是否是數值型的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章