日期轉化一 為了達到不同的顯示效果有時,我們須要對時間進行轉化,默認格式為:2007-01-03 14:33:34 ,要轉化為其它格式,要用到DateTime.ToString的方法(String, IFormatProvider),例如以下所看到的:
C#代碼??
using ?System;?? using ?System.Globalization;?? String?format="D" ;?? DateTime?date=DataTime,Now;?? Response.Write(date.ToString(format,?DateTimeFormatInfo.InvariantInfo));?? ? 結果輸出 Thursday, June 16, 2005 參數format格式具體使用方法: 格式字符 關聯屬性/說明? d ShortDatePattern? D LongDatePattern? f 完整日期和時間(長日期和短時間)? F FullDateTimePattern(長日期和長時間)? g 常規(短日期和短時間)? G 常規(短日期和長時間)? m、M MonthDayPattern? r、R RFC1123Pattern? s 使用當地時間的 SortableDateTimePattern(基于 ISO 8601)? t ShortTimePattern? T LongTimePattern? u UniversalSortableDateTimePattern 用于顯示通用時間的格式? U 使用通用時間的完整日期和時間(長日期和長時間)? y、Y YearMonthPattern? 下表列出了可被合并以構造自己定義模式的模式。
這些模式是區分大寫和小寫的;比如。識別“MM”,但不識別“mm”。假設自己定義模式包括空白字符或用單引號括起來的字符,則輸出字符串頁也將包括這些字符。沒有定義為格式模式的一部分或沒有定義為格式字符的字符按其原義復制。
格式模式 說明? d 月中的某一天。
一位數的日期沒有前導零。
? dd 月中的某一天。一位數的日期有一個前導零。
? ddd 周中某天的縮寫名稱。在 AbbreviatedDayNames 中定義。? dddd 周中某天的完整名稱,在 DayNames 中定義。? M 月份數字。一位數的月份沒有前導零。? MM 月份數字。
一位數的月份有一個前導零。? MMM 月份的縮寫名稱,在 AbbreviatedMonthNames 中定義。? MMMM 月份的完整名稱,在 MonthNames 中定義。
? y 不包括紀元的年份。
假設不包括紀元的年份小于 10。則顯示不具有前導零的年份。? yy 不包括紀元的年份。假設不包括紀元的年份小于 10,則顯示具有前導零的年份。? yyyy 包含紀元的四位數的年份。
? gg 時期或紀元。假設要設置格式的日期不具有關聯的時期或紀元字符串,則忽略該模式。? h 12 小時制的小時。一位數的小時數沒有前導零。? hh 12 小時制的小時。一位數的小時數有前導零。
? H 24 小時制的小時。
一位數的小時數沒有前導零。
? HH 24 小時制的小時。一位數的小時數有前導零。? m 分鐘。
一位數的分鐘數沒有前導零。? mm 分鐘。
一位數的分鐘數有一個前導零。? s 秒。一位數的秒數沒有前導零。? ss 秒。
一位數的秒數有一個前導零。? f 秒的小數精度為一位。
其余數字被截斷。? ff 秒的小數精度為兩位。其余數字被截斷。
? fff 秒的小數精度為三位。其余數字被截斷。? ffff 秒的小數精度為四位。其余數字被截斷。? fffff 秒的小數精度為五位。其余數字被截斷。? ffffff 秒的小數精度為六位。其余數字被截斷。? fffffff 秒的小數精度為七位。其余數字被截斷。? t 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項的第一個字符(假設存在)。? tt 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項(假設存在)。? z 時區偏移量(“+”或“-”后面僅跟小時)。一位數的小時數沒有前導零。比如,太平洋標準時間是“-8”。? zz 時區偏移量(“+”或“-”后面僅跟小時)。
一位數的小時數有前導零。比如。太平洋標準時間是“-08”。? zzz 完整時區偏移量(“+”或“-”后面跟有小時和分鐘)。
一位數的小時數和分鐘數有前導零。比如,太平洋標準時間是“-08:00”。? : 在 TimeSeparator 中定義的默認時間分隔符。? / 在 DateSeparator 中定義的默認日期分隔符。
? % c 當中 c 是格式模式(假設單獨使用)。假設格式模式與原義字符或其它格式模式合并。則能夠省略“%”字符。? \ c 當中 c 是隨意字符。照原義顯示字符。若要顯示反斜杠字符,請使用“\\”。? 僅僅有上面第二個表中列出的格式模式才干用于創建自己定義模式;在第一個表中列出的標準格式字符不能用于創建自己定義模式。自己定義模式的長度至少為兩個字符。比如。? DateTime.ToString( "d") 返回 DateTime 值;“d”是標準短日期模式。
? DateTime.ToString( "%d") 返回月中的某天;“%d”是自己定義模式。
? DateTime.ToString( "d ") 返回后面跟有一個空白字符的月中的某天。“d”是自己定義模式。
? 比較方便的是,上面的參數能夠任意組合,而且不會出錯,多試試,肯定會找到你要的時間格式 如要得到2005年06月 這樣格式的時間 能夠這樣寫: date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)日期轉化二
C#代碼??
DateTime?dt?=?DateTime.Now;?? Label1.Text?=?dt.ToString();?? Label2.Text?=?dt.ToFileTime().ToString();?? Label3.Text?=?dt.ToFileTimeUtc().ToString();?? Label4.Text?=?dt.ToLocalTime().ToString();?? Label5.Text?=?dt.ToLongDateString().ToString();?? Label6.Text?=?dt.ToLongTimeString().ToString();?? Label7.Text?=?dt.ToOADate().ToString();?? Label8.Text?=?dt.ToShortDateString().ToString();?? Label9.Text?=?dt.ToShortTimeString().ToString();?? Label10.Text?=?dt.ToUniversalTime().ToString();?? ?? Label1.Text?=?dt.Year.ToString();?? Label2.Text?=?dt.Date.ToString();?? Label3.Text?=?dt.DayOfWeek.ToString();?? Label4.Text?=?dt.DayOfYear.ToString();?? Label5.Text?=?dt.Hour.ToString();?? Label6.Text?=?dt.Millisecond.ToString();?? Label7.Text?=?dt.Minute.ToString();?? Label8.Text?=?dt.Month.ToString();?? Label9.Text?=?dt.Second.ToString();?? Label10.Text?=?dt.Ticks.ToString();?? Label11.Text?=?dt.TimeOfDay.ToString();?? ?? Label1.Text?=?dt.ToString();?? Label2.Text?=?dt.AddYears(1).ToString();?? Label3.Text?=?dt.AddDays(1.1).ToString();?? Label4.Text?=?dt.AddHours(1.1).ToString();?? Label5.Text?=?dt.AddMilliseconds(1.1).ToString();?? Label6.Text?=?dt.AddMonths(1).ToString();?? Label7.Text?=?dt.AddSeconds(1.1).ToString();?? Label8.Text?=?dt.AddMinutes(1.1).ToString();?? Label9.Text?=?dt.AddTicks(1000).ToString();?? Label10.Text?=?dt.CompareTo(dt).ToString();?? Label11.Text?=?dt.Add(?).ToString();?? ?? Label1.Text?=?dt.Equals("2005-11-6?16:11:04" ).ToString();?? Label2.Text?=?dt.Equals(dt).ToString();?? Label3.Text?=?dt.GetHashCode().ToString();?? Label4.Text?=?dt.GetType().ToString();?? Label5.Text?=?dt.GetTypeCode().ToString();?? ?? Label1.Text?=?dt.GetDateTimeFormats('s' )[0].ToString();?? Label2.Text?=?dt.GetDateTimeFormats('t' )[0].ToString();?? Label3.Text?=?dt.GetDateTimeFormats('y' )[0].ToString();?? Label4.Text?=?dt.GetDateTimeFormats('D' )[0].ToString();?? Label5.Text?=?dt.GetDateTimeFormats('D' )[1].ToString();?? Label6.Text?=?dt.GetDateTimeFormats('D' )[2].ToString();?? Label7.Text?=?dt.GetDateTimeFormats('D' )[3].ToString();?? Label8.Text?=?dt.GetDateTimeFormats('M' )[0].ToString();?? Label9.Text?=?dt.GetDateTimeFormats('f' )[0].ToString();?? Label10.Text?=?dt.GetDateTimeFormats('g' )[0].ToString();?? Label11.Text?=?dt.GetDateTimeFormats('r' )[0].ToString();?? ?? Label1.Text?=?string .Format("{0:d}" ,dt);?? Label2.Text?=?string .Format("{0:D}" ,dt);?? Label3.Text?=?string .Format("{0:f}" ,dt);?? Label4.Text?=?string .Format("{0:F}" ,dt);?? Label5.Text?=?string .Format("{0:g}" ,dt);?? Label6.Text?=?string .Format("{0:G}" ,dt);?? Label7.Text?=?string .Format("{0:M}" ,dt);?? Label8.Text?=?string .Format("{0:R}" ,dt);?? Label9.Text?=?string .Format("{0:s}" ,dt);?? Label10.Text???string .Format("{0:t}" ,dt);?? Label11.Text?=?string .Format("{0:T}" ,dt);?? Label12.Text?=?string .Format("{0:u}" ,dt);?? Label13.Text?=?string .Format("{0:U}" ,dt);?? Label14.Text?=?string .Format("{0:Y}" ,dt);?? Label15.Text?=?string .Format("{0}" ,dt);?? Label16.Text?=?string .Format("{0:yyyyMMddHHmmssffff}" ,dt);???? ?
?
?
C#比較兩時間大小 1、比較時間大小的實驗 ???
C#代碼??
string ?st1="12:13" ;?? ????string ?st2="14:14" ;?? ????DateTime?dt1=Convert.ToDateTime(st1);?? ????DateTime?dt2=Convert.ToDateTime(st2);?? ????DateTime?dt3=DateTime.Now;?? ????if (DateTime.Compare(dt1,dt2)>0)?? ?????msg.Text=st1+">" +st2;?? ????else ?? ?????msg.Text=st1+"<" +st2;?? ????msg.Text+="\r\n" +dt1.ToString();?? ????if (DateTime.Compare(dt1,dt3)>0)?? ?????msg.Text+="\r\n" +st1+">" +dt3.ToString();?? ????else ?? ?????msg.Text+="\r\n" +st1+"<" +dt3.ToString();?? ?
?
2、計算兩個時間差值的函數。返回時間差的絕對值: ????????
C#代碼??
private ?string ?DateDiff(DateTime?DateTime1,DateTime?DateTime2)?? ?????????{?? ?????????????string ?dateDiff=null ;?? ?????????????try ?? ?????????????{?? ?????????????????TimeSpan?ts1=new ???TimeSpan(DateTime1.Ticks);?? ?????????????????TimeSpan?ts2=new ???TimeSpan(DateTime2.Ticks);?? ?????????????????TimeSpan?ts=ts1.Subtract(ts2).Duration();?? ?????????????????dateDiff=ts.Days.ToString()+"天" ?? ?????????????????????????+ts.Hours.ToString()+"小時" ?? ?????????????????????????+ts.Minutes.ToString()+"分鐘" ?? ?????????????????????????+ts.Seconds.ToString()+"秒" ;?? ?????????????}?? ?????????????catch ?? ?????????????{?? ?? ??????????????}?? ????????????????return ?dateDiff;?? ??????????}?? ?
?
?3、實現計算DateTime1-36天=DateTime2的功能
?
C#代碼??
TimeSpan?ts=new ?TimeSpan(40,0,0,0);?? ????DateTime?dt2=DateTime.Now.Subtract(ts);?? ????msg.Text=DateTime.Now.ToString()+"-" +ts.Days.ToString()+"天\r\n" ;?? ????msg.Text+=dt2.ToString(); ? 漢碼盤點機原創,轉載請注明出處。
漢碼盤點機——專注于傻瓜式的倉庫條碼管理。國內倉庫條碼管理總體解決方式領導品牌。
總結
以上是生活随笔 為你收集整理的C#日期时间类型格式化大全集 C#DateTime 类型格式化大全集 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。