我想知道是否可以将自定义格式的DateTime转换为更标准化的内容。
我在字符串中有两种类型的日期格式。
string Date1 = @"06.12.2015 18.00";
string Date2 = @"1944-09-29";
我希望将两者转换为这种格式:
yyyy-MM-ddThh:mm:ssZ
我该怎么做?
我试过
DateTime testdate = DateTime.ParseExact(Date1,
"yyyy-MM-ddThh:mm:ssZ",
CultureInfo.InvariantCulture);
但没有运气。
编辑:Thsi问题被标记为可能与StackOverflow中的另一个条目重复。正如Vadim Yarovikov在下面的评论中提到的那样,这里的不同之处在于两个问题。 " 1)到目前为止的分析值和2)将日期转换为所需的格式。"
答案 0 :(得分:3)
您可以在一次DateTime.ParseExact
电话中提供两种格式:
string[] tests = new string[] {
@"06.12.2015 18.00",
@"1944-09-29"
};
var result = tests
.Select(item => DateTime.ParseExact(
item,
new string[] { "d.M.yyyy H.m", "yyyy-M-d" },
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeLocal))
.Select(date => date.ToString("yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture));
Console.WriteLine(string.Join(Environment.NewLine, result));
结果:
2015-12-06T18:00:00Z
1944-09-29T12:00:00Z
旁注:我认为实际目标格式应为"yyyy-MM-ddTHH:mm:ssZ"
(请注意HH
而不是hh
)否则它无法区分 6:00AM
和6:00PM (18:00)