转换自定义格式的日期
Converting custom formatted dates
我想知道是否可以将自定义格式的日期时间转换为更标准化的格式。
我在字符串中有两种类型的日期格式。
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);
但运气不好。
编辑:这个问题被标记为可能与 Whosebug 中的另一个条目重复。这里的区别是,正如 Vadim Yarovikov 在下面的评论中所说的那样,这是一个由两部分组成的问题。
“1) 将值解析为日期和 2) 将日期转换为所需格式。”
您可以在一次 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)
我想知道是否可以将自定义格式的日期时间转换为更标准化的格式。
我在字符串中有两种类型的日期格式。
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);
但运气不好。
编辑:这个问题被标记为可能与 Whosebug 中的另一个条目重复。这里的区别是,正如 Vadim Yarovikov 在下面的评论中所说的那样,这是一个由两部分组成的问题。 “1) 将值解析为日期和 2) 将日期转换为所需格式。”
您可以在一次 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)