[英]Converting string dd-MM-yyyy to DateTime yyyy-MM-dd in C#
[英]C# Converting YYYY-MM-DD to MM/DD/YYYY (“-” TO “/”)
嘿,我遇到了麻煩。
string record = el.InnerText;
var result1 = parseString(record);
var StartDate = string.Join("", result1.ConvertAll(r => string.Format("{0}", r)).ToArray());
//DateTime strStartDate = DateTime.ParseExact(StartDate, "mm-dd-yyyy", CultureInfo.InvariantCulture);
var EndDate = string.Join("", result1.ConvertAll(r => string.Format("{1}", r)).ToArray());
//DateTime strEndDate = DateTime.ParseExact(EndDate, "mm-dd-yyyy", CultureInfo.InvariantCulture);
這是parseString
函數:
private static List<string[]> parseString(string input)
{
var pattern = @"Start\s+Date:\s+([0-9-]+)\s+End\s+Date:\s+([0-9-]+)\s+(?:Warranty\s+Type:\s+\w+\s+)?Status:\s+(\w+)\s*";
return Regex.Matches(input, pattern).Cast<Match>().ToList().ConvertAll(m => new string[] { m.Groups[1].Value, m.Groups[2].Value, m.Groups[3].Value });
}
DateTimes
無效,因為我猜測將string
轉換為DateTime
時“ - ”不是有效字符。
我嘗試了record = record.Replace("-", "/")
但最終弄亂了我的字符串並且它停止顯示(來自html頁面)。
你的問題不在-
。 沒有什么不妥。 但是你似乎用小寫字母m
而不是大寫字母M
來表示你的月份:
//DateTime strStartDate = DateTime.ParseExact(StartDate, "mm-dd-yyyy", CultureInfo.InvariantCulture);
(另請注意,您將其放在評論中 - 使其不太明顯!)
將其更改為:
//Note the capital MM
DateTime strStartDate = DateTime.ParseExact(StartDate, "MM-dd-yyyy", CultureInfo.InvariantCulture);
這就是你得到錯誤的原因。 小寫字母m
表示分鍾,而不是月份。 要表示月份,請使用資本M
string res = "2016030";
DateTime d = DateTime.ParseExact(res, "yyyyddMM", CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString("MM/dd/yyyy"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.