【发布时间】:2020-11-20 09:47:09
【问题描述】:
我有“202006260718083370”作为输入值,我需要将其转换为 DateTime.Parse 的 parse-able 字符串。除了下面的方法,你还能想到什么优雅的方法吗?
方法 1 - 分别在其间插入字符串。
var input = "202006260718083370".Insert(5, "-")
.Insert(8, "-")
.Insert(11, " ")
.Insert(14, ":")
.Insert(17, ":")
.Insert(20, ".");
var dateTime = DateTime.Parse("2020-06-26 07:18:08.3370") // What input looks like
方法 2 - 单独传入 new DateTime(....)
var year = "202006260718083370".Substring(0, 4);
var month = "202006260718083370".Substring(4, 2);
var date = "202006260718083370".Substring(6, 2);
var hour = "202006260718083370".Substring(8, 2);
var min = "202006260718083370".Substring(10, 2);
var sec = "202006260718083370".Substring(12, 2);
var mil = "202006260718083370".Substring(14, 4);
方法 3 - 方法 2 几乎相同。使用字符串数组和 concat。喜欢答案here。
【问题讨论】:
-
只要使用
DateTime.ParseExact(input, "yyyyMMddHHmmssffff", CultureInfo.InvariantCulture) -
@Evk,感谢您的快速解决方案。