簡體   English   中英

C#將YYYY-MM-DD轉換為MM / DD / YYYY(“ - ”TO“/”)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM