簡體   English   中英

將 DateTime 轉換為字符串“yyyy-mm-dd”

[英]Convert DateTime to string "yyyy-mm-dd"

我想知道如何將 DateTime 轉換為字符串值(yyyy-mm-dd)。 我有一個控制台應用程序,我希望用戶能夠將日期寫為“yyyy-mm-dd”,然后將其轉換為字符串。

我已經嘗試過了,但它似乎在相反的方向上工作。 這個想法是用戶使用 Console.ReadLine 輸入開始日期和結束日期。 然后這些值作為字符串存儲在字符串 A 和 B 中,以后可以使用。 那可能嗎?

string A = string.Empty;
string B = string.Empty;
DateTime Start = DateTime.ParseExact(A, "yyyy-mm-dd",CultureInfo.InvariantCulture);
Console.WriteLine("Enter StartDate! (yyyy-mm-dd)");
Start = Console.ReadLine();      
DateTime End = DateTime.ParseExact(A, "yyyy-mm-dd",CultureInfo.InvariantCulture);
Console.WriteLine("Enter EndDate! (yyyy-mm-dd)");
End = Console.ReadLine();

謝謝

你在正確的軌道上,但你有點偏離。 例如,在閱讀時嘗試這樣的事情:

var s = Console.ReadLine();
var date = DateTime.ParseExact(s,"yyyy-MM-dd",CultureInfo.InvariantCulture);

您可能還想使用DateTime.TryParseExact() ,它更安全一些,您可以處理當有人輸入垃圾時發生的情況。就目前而言,您會得到一個很好的異常。

當輸出到特定格式時,您可以使用與DateTime.ToString()相同的格式,例如:

var date_string = date.ToString("yyyy-MM-dd");

目前尚不清楚您是否要將DateTime轉換為String或反之亦然。

DateTimeString :只需格式化源:

 DateTime source = ...;
 String result = source.ToString("yyyy-MM-dd");

StringDateTime准確解析源:

 String source = ...;
 DateTime result = DateTime.ParseExact(source, "yyyy-MM-dd", CultureInfo.InvariantCulture);

或 TryParseExact(如果您想檢查用戶的輸入

 String source = ...;
 DateTime result;

 if (DateTime.TryParseExact(source, "yyyy-MM-dd", 
                            CultureInfo.InvariantCulture, 
                            out result) {
   // parsed
 }
 else {
   // not parsed (incorrect format)
 }

要將 DateTime 轉換為所需 (yyyy-mm-dd) 格式的字符串值,我們可以這樣做:

DateTime testDate = DateTime.Now; //Here is your date field value.
string strdate = testDate.ToString("yyyy, MMMM dd");

雖然您可以使用 ToString() 格式化 DateTime 值,但不能直接格式化可為空的 DateTime (DateTime?)。 首先,你必須轉換它。 ((DateTime)someDate).ToString()。 但是,如果變量是 null,則需要處理這種情況,否則將引發異常。 約會時間? 日期時間 = null;

if (dateTime != null)
{
    Debug.WriteLine(((DateTime)dateTime).ToString("yyyy-MM-dd"));
}
else
{
    // Handle null date value
    dateTime = DateTime.Now;
    Debug.WriteLine(((DateTime)dateTime).ToString("yyyy-MM-dd"));
}

暫無
暫無

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

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