给出两个字符串
string date = "02Mar13";
string duration = "03.20min";
如何将它们解析为DateTime
并以下列格式显示
string date = "02 March 2013";
string duration = "00:03:20";
我查看了here列表,但没有人符合我的要求。
答案 0 :(得分:5)
您需要使用Custom Date and Time format string解析这些,并使用一个输出:
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
字面值 - 这是自定义格式字符串的一部分,允许使用内部字符串文字。
答案 1 :(得分:4)
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");
答案 2 :(得分:1)
使用DateTime.ParseExact进行DateTime解析非常简单:
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"
答案 3 :(得分:1)
如何生成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);