Blu*_*ppy 0 c# string datetime
我有一个系统以"1 {yy} {MM} {dd}"的格式输出日期,我试图找到一种好的方法将其解析回实际日期.目前我正在使用这个:
var value = "1110825";
var z = Enumerable.Range(1,3).Select(i => int.Parse(value.Substring(i, 2))).ToList();
var d = new DateTime(2000 + z[0], z[1], z[2]);
Run Code Online (Sandbox Code Playgroud)
但我确定有更清洁/更有效的方法吗?
我已经尝试过DT.ParseExact,但找不到合适的格式字符串来使用.
这对我有用:
using System;
using System.Globalization;
public class Test
{
static void Main()
{
var value = "1110825";
DateTime dt = DateTime.ParseExact(value, "1yyMMdd",
CultureInfo.InvariantCulture);
Console.WriteLine(dt);
}
}
Run Code Online (Sandbox Code Playgroud)
(TryParseExact当然,如果您需要以除异常之外的任何方式处理无效数据,您可能希望使用.)
稍微变化的是"'1'yyMMdd"的格式模式 - 注意围绕1的撇号.引用1强制它被视为模式中的"文字".在这种情况下这并不重要,但是如果你实际上有"y110825"这样的值,那么你想引用它y以确保它不被视为年份说明符的一部分.