給定兩個字符串解析C#字符串HH:MM:SS
string date = "02Mar13";
string duration = "03.20min";
如何解析他們DateTime
,並顯示在下面的格式
string date = "02 March 2013";
string duration = "00:03:20";
我在列表中去here但沒有人符合我的要求。
給定兩個字符串解析C#字符串HH:MM:SS
string date = "02Mar13";
string duration = "03.20min";
如何解析他們DateTime
,並顯示在下面的格式
string date = "02 March 2013";
string duration = "00:03:20";
我在列表中去here但沒有人符合我的要求。
您需要使用解析這些,並使用一個,以及輸出:
DateTime dt = DateTime.ParseExact(date + duration,
"ddMMMyymm.ss'min'",
CultureInfo.InvariantCulture);
string newDate = dt.ToString("dd MMMM yyyy");
string newDuration = dt.ToString("HH:mm:ss");
注意事項:我使用'min'
表示字符串中的min
文字 - 這是自定義格式字符串的一部分,使內字符串文字。
string date = "02Mar13";
string duration = "03.20min";
DateTime newDate = DateTime.ParseExact(date + duration, "ddMMMyymm.ss\\min", null);
date = newDate.ToString("dd MMMM yyyy");
duration = newDate.ToString("hh:mm:ss");
DateTime的解析是使用DateTime.ParseExact非常簡單:
DateTime.ParseExact(date, "ddMMMyy", null).ToString("dd MMMM yyyy"); // "02 March 2013"
至於第二部分,如果它是一個持續時間語義,那麼它是更合適的是使用TimeSpan.ParseExact(儘管它需要一些擺弄格式字符串):
TimeSpan.ParseExact(duration, "mm\\.ss'min'", null).ToString("hh\\:mm\\:ss"); // "00:03:20"
怎麼能生產出dateResult
string date = "02Mar13";
string duration = "03.20min";
var mat=Regex.Match(duration, "(.+?)min");
var dateResult = DateTime.ParseExact(date + mat.Groups[1].Value.Replace(".",":"), "ddMMMyyHH:mm", Thread.CurrentThread.CurrentCulture);
正則表達式在這裏矯枉過正。絕對不是必需的,當自定義格式字符串可以直接處理文字。 – Oded 2013-04-05 09:52:37
是啊!你更好。我不知道'表達'的用法,非常好。謝謝。 +1 – 2013-04-05 10:51:18
您可以使用[DateTime.ParseExact(http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx)。在MSDN和StackOverflow上應該有很多例子。 – Default 2013-04-05 09:13:01