【问题标题】:Convert DateTime to string "yyyy-mm-dd"将 DateTime 转换为字符串“yyyy-mm-dd”
【发布时间】:2014-04-24 00:22:03
【问题描述】:

我想知道如何将 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();

谢谢

【问题讨论】:

  • 使用DateTime.Now.ToString("yyyy-MM-dd"); 将日期时间转换为字符串。

标签: c# .net datetime console-application converter


【解决方案1】:

你在正确的轨道上,但你有点偏离。例如,在阅读时尝试这样的事情:

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 进行输入: Console.WriteLine("Enter StartDate! (yyyy-mm-dd)");字符串 A = Console.ReadLine(); Console.WriteLine("输入结束日期!(yyyy-mm-dd)");字符串 B = Console.ReadLine();
【解决方案2】:

不清楚您是否要将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)
 }

【讨论】:

  • mm应该是资本MM
【解决方案3】:

为了将 DateTime 转换为所需 (yyyy-mm-dd) 格式的字符串值,我们可以这样做:

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

【讨论】:

    猜你喜欢
    • 2017-05-30
    • 1970-01-01
    • 2018-03-27
    • 2016-12-25
    • 2013-06-30
    • 2018-05-19
    • 1970-01-01
    • 2019-01-26
    • 2016-03-21
    相关资源
    最近更新 更多