[英]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
或反之亦然。
從DateTime
到String
:只需格式化源:
DateTime source = ...;
String result = source.ToString("yyyy-MM-dd");
從String
到DateTime
:准確解析源:
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.