【问题标题】:Converting String to DateTime in C# in a particular format在 C# 中以特定格式将字符串转换为 DateTime
【发布时间】:2014-11-01 09:22:05
【问题描述】:

如何将 07/26/13 等字符串转换为以下格式的 C# DateTime 变量? 2013-07-26 00:00:00(Mysql 日期时间)

【问题讨论】:

  • DateTime 没有格式 - 它只是一个日期和时间。而且你不应该将它作为字符串传递给数据库......使用参数化SQL并将参数的值直接设置为DateTime

标签: c# .net datetime


【解决方案1】:

如果您的CurrentCulture 具有MM/dd/yy 作为标准日期和时间格式,您可以使用DateTime.Parse method like;

DateTime date = DateTime.Parse("07/26/13");

如果不是,您可以使用DateTime.ParseExactDateTime.TryParseExact 方法以自定义日期和时间格式解析您的字符串,例如;

string s = "07/26/13";
DateTime date;
if(DateTime.TryParseExact(s, "MM/dd/yy", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out date))
{
    Console.WriteLine(date);
}

DateTime 没有 any 隐式格式。它只有日期和时间值。它的字符串表示具有格式。你可以用.ToString这样的方法格式化你的DateTime

date.ToString("yyyy-MM-dd HH:mm:ss");

顺便说一句,如果您想将DateTime 值插入数据库,则不应将其作为字符串插入。您应该使用 parameterized queries 并将您的 DateTime 值直接传递给您的参数。

【讨论】:

    【解决方案2】:

    使用 TryParseExact。在发布问题之前自己尝试一下

    string date_time = "07/26/13";
    DateTime d;
    if (DateTime.TryParseExact(date_time, "mm/dd/yy",  new CultureInfo("en-US"), 
                              DateTimeStyles.None, 
                              out  d))
    {
      date_time = d.ToString("yyyy-mm-dd hh:mm:ss");
    }
    

    【讨论】:

    • mm 分钟,您应该改用MM
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多