我需要接受来自输入文件,它可以是C#中的任何格式.我需要检查格式并提取年份
本文关键字:格式 任何 检查 取年份 提取 输入 文件 | 更新日期: 2023-09-27 18:27:09
YYYYMMDD格式未被接受,正在引发异常我试过使用
string Year = DateTime.ParseExact(UseDate, "YYYYMMDD",
CultureInfo.InvariantCulture).Year.ToString();
只需要我使用日期变量吗?日期格式yyyymmdd是如何处理的?
您可以定义任何您喜欢的格式,还可以获得给定区域性的默认值列表。
var ci = new CultureInfo("en-US");
var formats = new[] { "M-d-yyyy", "dd-MM-yyyy", "MM-dd-yyyy", "M.d.yyyy", "dd.MM.yyyy", "MM.dd.yyyy" }
.Union(ci.DateTimeFormat.GetAllDateTimePatterns()).ToArray();
DateTime.ParseExact("07/23/2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
DateTime.ParseExact("07-23-2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
DateTime.ParseExact("23-07-2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
DateTime.ParseExact("23.07.2013", formats, ci, DateTimeStyles.AssumeLocal).Dump();
输出:
7/23/2013 12:00:00 AM
7/23/2013 12:00:00 AM
7/23/2013 12:00:00 AM
7/23/2013 12:00:00 AM
我已经测试过了,运行良好
DateTime temp;
if (DateTime.TryParseExact("20130101", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out temp))
{
string year = temp.Year.ToString();
}
DateTime.ParseExact
的格式字符串区分大小写。
string year = DateTime.ParseExact(UseDate, "yyyyMMdd", CultureInfo.InvariantCulture).Year.ToString();
M
是大写的,因为它表示月份,而m
表示分钟。
自定义日期和时间格式字符串
string Year =
DateTime.ParseExact(UseDate, "yyyyMMdd", CultureInfo.InvariantCulture).Year.ToString();
y年和d日必须小写,M月必须大写