DateTime 格式的意義

          格式化格式說明符 

            d
            顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則它顯示為一位數字。
            請注意,如果“d”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準短日期模式格式說明符。如果“d”格式說明符與其他自定義格式說明符或者“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            dd
            顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。
            ddd
            顯示指定的 DateTime 的日期部分縮寫名稱。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 的 AbbreviatedDayNames 屬性及其與當前所使用線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedDayNames 屬性。
            dddd(外加任意數量的附加“d”字符)
            顯示指定的 DateTime 的日期全名。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 DayNames 屬性及其與當前所使用線程關聯的當前區域性。否則,使用來自指定格式提供程序的 DayNames 屬性。
            f
            顯示秒部分的最高有效位。
            請注意,如果“f”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為完整的(長日期 + 短時間)格式說明符。如果“f”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            使用 System.DateTime.ParseExact 方法進行分析時,所使用的“f”格式說明符的位數指示要分析的秒部分的最高有效位的位數。
            ff
            顯示秒部分的兩個最高有效位。
            fff
            顯示秒部分的三個最高有效位。
            ffff
            顯示秒部分的四個最高有效位。
            fffff
            顯示秒部分的五個最高有效位。
            ffffff
            顯示秒部分的六個最高有效位。
            fffffff
            顯示秒部分的七個最高有效位。
            F
            顯示秒部分的最高有效位。如果該位為零,則不顯示任何信息。
            使用 System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider) 方法進行分析時,所使用的“F”格式說明符的位數指示要分析的秒部分的最高有效位最大數。
            FF
            顯示秒部分的兩個最高有效位。但不顯示尾隨零(或兩個零位)。
            FFF
            顯示秒部分的三個最高有效位。但不顯示尾隨零(或三個零位)。
            FFFF
            顯示秒部分的四個最高有效位。但不顯示尾隨零(或四個零位)。
            FFFFF
            顯示秒部分的五個最高有效位。但不顯示尾隨零(或五個零位)。
            FFFFFF
            顯示秒部分的六個最高有效位。但不顯示尾隨零(或六個零位)。
            FFFFFFF
            顯示秒部分的七個最高有效位。但不顯示尾隨零(或七個零位)。
            g 或 gg(外加任意數量的附加“g”字符)
            顯示指定的 DateTime 的年代部分(例如 A.D.)。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則年代由與 DateTimeFormat 關聯的日歷及其與當前線程關聯的當前區域性確定。
            請注意,如果“g”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準常規格式說明符。如果“g”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            h
            以 1 到 12 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 12)或中午(也顯示為 12)后經過的整小時數。如果單獨使用這種格式,則無法區別某一小時是中午以前還是中午以后的時間。如果該小時是單個數字 (1-9),則它顯示為單個數字。顯示小時時不發生任何舍入。例如,DateTime 為 5:43 時返回 5。
            hh, hh(外加任意數量的附加“h”字符)
            以 1 到 12 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 12)或中午(也顯示為 12)后經過的整小時數。如果單獨使用這種格式,則無法區別某一小時是中午以前還是中午以后的時間。如果該小時是單個數字 (1-9),則將其格式化為前面帶有 0 (01-09)。
            H
            以 0 到 23 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 0)后經過的整小時數。如果該小時是單個數字 (0-9),則它顯示為單個數字。
            HH, HH(外加任意數量的附加“H”字符)
            以 0 到 23 范圍中的一個數字顯示指定的 DateTime 的小時數,該小時數表示自午夜(顯示為 0)后經過的整小時數。如果該小時是單個數字 (0-9),則將其格式化為前面帶有 0 (01-09)。
            m
            以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的分鐘數,該分鐘數表示自上一小時后經過的整分鐘數。如果分鐘是一位數字 (0-9),則它顯示為一位數字。
            請注意,如果“m”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的月日模式格式說明符。如果“m”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            mm, mm(外加任意數量的附加“m”字符)
            以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的分鐘數,該分鐘數表示自上一小時后經過的整分鐘數。如果分鐘是一位數字 (0-9),則將其格式化為帶有前導 0 (01-09)。
            M
            顯示月份,以 1 到 12 之間(包括 1 和 12)的一個數字表示。如果月份是一位數字 (1-9),則它顯示為一位數字。
            請注意,如果“M”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的月日模式格式說明符。如果“M”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            MM
            顯示月份,以 1 到 12 之間(包括 1 和 12)的一個數字表示。如果月份是一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。
            MMM
            顯示指定的 DateTime 的月部分縮寫名稱。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 AbbreviatedMonthNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedMonthNames 屬性。
            MMMM
            顯示指定的 DateTime 的月的全名。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 MonthNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 MonthNames 屬性。
            s
            以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的秒數,該秒數表示自上一分鐘后經過的整秒數。如果秒是一位數字 (0-9),則它僅顯示為一位數字。
            請注意,如果“s”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的可排序日期/時間模式格式說明符。如果“s”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            ss, ss(外加任意數量的附加“s”字符)
            以 0 到 59 范圍中的一個數字顯示指定的 DateTime 的秒數,該秒數表示自上一分鐘后經過的整秒數。如果秒是一位數字 (0-9),則將其格式化為帶有前導 0 (01-09)。
            t
            顯示指定的 DateTime 的 A.M./P.M. 指示項的第一個字符。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 AMDesignator(或 PMDesignator)屬性及其與當前線程關聯的當前區域性。否則,使用來自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)屬性。如果對于指定的 DateTime 所經過的總整小時數小于 12,則使用 AMDesignator。否則,使用 PMDesignator。
            請注意,如果“t”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的長時間模式格式說明符。如果“t”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            tt, tt(外加任意數量的附加“t”字符)
            顯示指定的 DateTime 的 A.M./P.M. 指示項。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 AMDesignator(或 PMDesignator)屬性及其與當前線程關聯的當前區域性。否則,使用來自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)屬性。如果對于指定的 DateTime 所經過的總整小時數小于 12,則使用 AMDesignator。否則,使用 PMDesignator。
            y
            最多用兩位數字顯示指定的 DateTime 的年份。忽略年的前兩位數字。如果年份是一位數字 (1-9),則它顯示為一位數字。
            請注意,如果“y”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準短日期模式格式說明符。如果“y”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。
            yy
            最多用兩位數字顯示指定的 DateTime 的年份。忽略年的前兩位數字。如果年份是一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。
            yyyy
            顯示指定的 DateTime 的年份部分(包括紀元)。如果年份長度小于四位,則按需要在前面追加零以使顯示的年份長度達到四位。
            z
            僅以整小時數為單位顯示系統當前時區的時區偏移量。偏移量總顯示為帶有前導符號(零顯示為“+0”),指示早于格林威治時間 (+) 或遲于格林威治時間 (-) 的小時數。值的范圍是 -12 到 +13。如果偏移量為一位數 (0-9),則將其顯示為帶有合適前導符號的一位數。時區設置以 +X 或 –X 的形式指定,其中 X 是相對于 GMT 的小時偏差。顯示的偏差受夏時制的影響。
            zz
            僅以整小時數為單位顯示系統當前時區的時區偏移量。偏移量總顯示為帶有前導或尾隨符號(零顯示為“+00”),指示早于格林威治時間 (+) 或遲于格林威治時間 (-) 的小時數。值范圍為 -12 到 +13。如果偏移量為一位數 (0-9),則將其格式化為前面帶有 0 (01-09) 并帶有適當的前導符號。時區設置以 +X 或 –X 的形式指定,其中 X 是相對于 GMT 的小時偏差。顯示的偏差受夏時制的影響。
            zzz, zzz(外加任意數量的附加“z”字符)
            以小時和分鐘為單位顯示系統當前時區的時區偏移量。偏移量總是顯示為帶有前導或尾隨符號(零顯示為“+00:00”),指示早于格林威治時間 (+) 或遲于格林威治時間 (-) 的小時數。值范圍為 -12:00 到 +13:00。如果偏移量為一位數 (0-9),則將其格式化為前面帶有 0 (01-09) 并帶有適當的前導符號。時區設置以 +X 或 –X 的形式指定,其中 X 是相對于 GMT 的小時偏差。顯示的偏差受夏時制的影響。
            :
            時間分隔符。
            /
            日期分隔符。
            "
            帶引號的字符串。顯示轉義符 (/) 之后兩個引號之間的任何字符串的文本值。
            '
            帶引號的字符串。顯示兩個“'”字符之間的任何字符串的文本值。
            %c
            其中 c 既是標準格式說明符又是自定義格式說明符,顯示與格式說明符關聯的自定義格式模式。
            請注意,如果格式說明符作為單個字符來單獨使用,它將被解釋成標準格式說明符。只有包含兩個或更多字符的格式說明符被解釋為自定義格式說明符。說明符可以被同時定義為標準和自定義格式說明符,要顯示此種說明符的自定義格式,請在說明符之前加“%”符號。
            \c
            其中 c 是任意字符,轉義符將下一個字符顯示為文本。在此上下文中,轉義符不能用于創建轉義序列(如“\n”表示換行)。
            任何其他字符
            其他字符作為文本直接寫入輸出字符串。
            向 DateTime.ToString 傳遞自定義模式時,模式必須至少為兩個字符長。如果只傳遞“d”,則公共語言運行庫將其解釋為標準格式說明符,這是因為所有單個格式說明符都被解釋為標準格式說明符。如果傳遞單個“h”,則引發異常,原因是不存在標準的“h”格式說明符。若要只使用單個自定義格式進行格式化,請在說明符的前面或后面添加一個空格。例如,格式字符串“h”被解釋為自定義格式字符串。

          基本函數用法

           //今天
            DateTime.Now.Date.ToShortDateString();
            //昨天
            DateTime.Now.AddDays(-1).ToShortDateString();
            //明天
            DateTime.Now.AddDays(1).ToShortDateString();
            //本周(每一周是從周日始至周六止)
            DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
            DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
            //上周(本周再減去7天)
            DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
            DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
            //下周
            DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
            DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
            //本月
            //一般的寫法
            DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天
            DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天
            //用C#里ToString的字符格式化更簡便
            DateTime.Now.ToString("yyyy-MM-01");
            DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();
            //上個月,減去一個月份
            DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
            DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
            //下個月,加去一個月份
            DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
            DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
            //7天后
            DateTime.Now.Date.ToShortDateString();
            DateTime.Now.AddDays(7).ToShortDateString();
            //7天前
            DateTime.Now.AddDays(-7).ToShortDateString();
            DateTime.Now.Date.ToShortDateString();
            //本年度
            DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
            DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
            //上年度
            DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
            DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
            //下年度
            DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
            DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();
            //一年四個季度,一個季度三個月
            //首先我們先把日期推到本季度第一個月,然后這個月的第一天就是本季度的第一天了
            DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
            //同理,本季度的最后一天就是下季度的第一天減一
            DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
            //下季度
            DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
            DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
            //上季度
            DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
            DateTime.Parse(DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

          posted on 2012-04-13 10:32 SkyDream 閱讀(755) 評論(0)  編輯  收藏 所屬分類: C# WinForm

          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 祁门县| 云林县| 灌阳县| 大余县| 鹤峰县| 呈贡县| 伊川县| 临沭县| 沁源县| 麟游县| 高淳县| 兰坪| 瑞昌市| 河北省| 英德市| 迁安市| 邓州市| 石渠县| 阿拉善右旗| 甘谷县| 漠河县| 泗洪县| 淳安县| 茌平县| 瑞昌市| 绥棱县| 利辛县| 余姚市| 云和县| 进贤县| 铜鼓县| 长丰县| 深州市| SHOW| 普定县| 华蓥市| 沂源县| 基隆市| 宁都县| 柯坪县| 宁化县|