簡體   English   中英

如何將任何日期格式轉換為 yyyy-MM-dd

[英]How to convert any date format to yyyy-MM-dd

我的應用程序解析字符串數據,提取日期並識別日期格式並將其轉換為 yyyy-MM-dd。

源日期可以是任何石灰 dd-mm-yyyy、dd/mm/yyyy、mm-dd-yyyy、mm/dd/yyyy 甚至 yyyy-MM-dd。

除了使用 switch case 嘗試不同的排列和組合之外,還有其他有效的方法嗎?

string sourceDate = "31-08-2012";
String.Format("{0:yyyy-MM-dd}", sourceDate);

上面的代碼只返回相同的 sourceDate “31-08-2012”。

string DateString = "11/12/2009";
IFormatProvider culture = new CultureInfo("en-US", true); 
DateTime dateVal = DateTime.ParseExact(DateString, "yyyy-MM-dd", culture);

這些鏈接也可能對您有所幫助

DateTime.ToString() 模式

日期時間的字符串格式 [C#]

將您的字符串轉換為DateTime ,然后使用DateTime.ToString("yyyy-MM-dd");

DateTime temp = DateTime.ParseExact(sourceDate, "dd-MM-yyyy", CultureInfo.InvariantCulture);
string str = temp.ToString("yyyy-MM-dd");
string sourceDateText = "31-08-2012";
DateTime sourceDate = DateTime.Parse(sourceDateText, "dd-MM-yyyy")
string formatted = sourceDate.ToString("yyyy-MM-dd");

您可以通過以下方式將日期格式從dd/MM/yyyy更改為yyyy-MM-dd

string date = DateTime.ParseExact(SourceDate, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");

在這里, SourceDate是變量,您將在其中獲得所選日期。

您需要將輸入解析為 DateTime 對象,然后將其轉換為您想要的任何文本格式。

如果您不確定將獲得什么格式,您可以使用驗證或 datetimePicker 或其他一些組件將用戶限制為固定格式。

這是您的主要問題:

源日期可以是 dd-mm-yyyy、dd/mm/yyyy、mm-dd-yyyy、mm/dd/yyyy 甚至 yyyy-MM-dd。

如果給你01/02/2013 ,是 1 月 2 日還是 2 月 1 日? 你應該先解決這個問題,解析輸入會容易得多。

我建議你退后一步,更詳細地探索你想要解決的問題。

試試這個代碼:

 lblUDate.Text = DateTime.Parse(ds.Tables[0].Rows[0]["AppMstRealPaidTime"].ToString()).ToString("yyyy-MM-dd");

您可以在數組中編寫可能的日期格式並解析日期,如下所示:

public static void Main(string[] args)
        {
            string dd = "12/31/2015"; //or 31/12/2015
            DateTime startDate;
            string[] formats = { "dd/MM/yyyy", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy",
                                "dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy", "MM/dd/yyyy"};
            
            DateTime.TryParseExact(dd, formats, 
            System.Globalization.CultureInfo.InvariantCulture,
            System.Globalization.DateTimeStyles.None, out startDate);
                
            Console.WriteLine(startDate.ToString("yyyy-MM-dd"));
            
        }
if (DateTime.TryParse(datetoparser, out dateValue))
{
   string formatedDate = dateValue.ToString("yyyy-MM-dd");
}
string sourceDate = "15/06/2021T00.00.00";
DateTime Date = DateTime.Parse(sourceDate)
string date = Date.ToString("yyyy-MM-dd");
Convert.toDateTime(sourceDate).toString("yyyy-MM-dd");
Convert.ToDateTime((string)item["LeaveFromDate"]).ToString("dd/MM/yyyy")

這可能會有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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