2016年3月15日 星期二

String 與 Datetime 間的轉換


儲存日期時間,想要用string取代datetime型態,
但要轉換的string必須符合datetime可判讀的格式。

專案中設計dateTimePicker控制項選擇日期,comboBox控制項選擇時間。



程式範例


//datetime轉換成字串
//參數datetime傳入字串"10512312359"(年月日時分)共11個字元
public static DateTime StringTurnDatetime(string datetime)
{
            datetime = datetime.ToString().Trim().PadRight(13, '0');//補齊兩位秒數
            datetime = datetime.Insert(11, ":");
            datetime = datetime.Insert(9, ":");
            datetime = datetime.Insert(7, " ");
            datetime = datetime.Insert(5, "-");
            datetime = datetime.Insert(3, "-");

            DateTime dt = Convert.ToDateTime(datetime).AddYears(1911);//轉換成西元年格式
            return dt;
}

//回傳值dt為2016-12-31 23:59:00(年月日時分秒)


//字串轉換成datetime
//參數datetime傳入2016-12-31 23:59:00(年月日時分秒)
public static string DatetimeTurnString(DateTime datetime)
{
            int year = datetime.AddYears(-1911).Year;
            int month = datetime.Month;
            int day = datetime.Day;
            int hour = datetime.Hour;
            int minute = datetime.Minute;
            int second = datetime.Second;
            string date = "";
            string time = "";

            date += year.ToString();
            date += month.ToString().Trim().PadLeft(2, '0');//若為個位數則補齊兩位數
            date += day.ToString().Trim().PadLeft(2, '0');

            time += hour.ToString().Trim().PadLeft(2, '0');
            time += minute.ToString().Trim().PadLeft(2, '0');
            time += second.ToString().Trim().PadLeft(2, '0');

            return date + time;//回傳13位數字串
}
//回傳值為字串"1051231235900"(年月日時分秒)


參考資料

菜鳥工程師-成長日記: 【C#】字串處理

沒有留言:

張貼留言