日期格式化轉換,是開發過程中比較常遇到的問題。 例如以下格式的日期:13.06.2017、2017/06/13、2017年06月13日、2017年6月13日。 針對固定格式的日期可以用字元串截取的方式格式化成需要的格式,但是不夠通用。 擴展方法將日期從原始格式轉化成需要的格式: 測試代碼如下: 測試 ...
日期格式化轉換,是開發過程中比較常遇到的問題。
例如以下格式的日期:13.06.2017、2017/06/13、2017年06月13日、2017年6月13日。
針對固定格式的日期可以用字元串截取的方式格式化成需要的格式,但是不夠通用。
擴展方法將日期從原始格式轉化成需要的格式:
public static class CovertDateFormatExtensionMethod { /// <summary> /// 日期字元串轉換 /// </summary> /// <param name="date">日期字元串</param> /// <param name="fromDateFormat">原始日期格式</param> /// <param name="toDateFormat">轉換後日期格式</param> /// <returns></returns> public static string Convert(this string date, string fromDateFormat, string toDateFormat) { DateTime dateTime = DateTime.ParseExact(date, fromDateFormat, System.Globalization.DateTimeFormatInfo.CurrentInfo); return dateTime.ToString(toDateFormat); } }
測試代碼如下:
class Program { static void Main(string[] args) { //dd.MM.yyyy string date1 = "13.06.2017"; //yyyy/MM/dd string date2 = "2017/06/13"; //yyyy年MM月dd日 string date3 = "2017年06月13日"; //yyyy年M月dd日 string date4 = "2017年6月13日"; Console.WriteLine(string.Format("原始日期:{0},轉換後日期:{1}", date1, date1.Convert("dd.MM.yyyy", "yyyy-MM-dd"))); Console.WriteLine(string.Format("原始日期:{0},轉換後日期:{1}", date2, date2.Convert("yyyy/MM/dd", "yyyy-MM-dd"))); Console.WriteLine(string.Format("原始日期:{0},轉換後日期:{1}", date3, date3.Convert("yyyy年MM月dd日", "yyyy-MM-dd"))); Console.WriteLine(string.Format("原始日期:{0},轉換後日期:{1}", date4, date4.Convert("yyyy年M月dd日", "yyyy-MM-dd"))); Console.ReadKey(); } }
測試結果: