将字符串dd / mm / yyy转换为yyyy-mm-dd hh:mm:ss

时间:2015-11-26 06:05:14

标签: c# datetime sql-server-2008-r2

我有一个字符串

string str = "26/01/2015";

我需要将其转换为日期时间2015-01-26 00:00:00.000,以便我可以将其存储在数据库中。

到目前为止我尝试过的是

DateTime.ParseExact(str, "dd/MM/yyyy", CultureInfo.InvariantCulture)`

我的值为'26/01/2015 12:00:00 AM'

但我需要2015-01-26 00:00:00.000

有可能吗?任何帮助表示赞赏

5 个答案:

答案 0 :(得分:1)

一旦有了DateTime对象,就可以更新数据库,因为它是最准确的数据库。在输出上对你有什么关系,当你从数据库中检索它时,它是datetime对象然后你的.ToString来格式化它。

答案 1 :(得分:0)

您需要将其转换为此类字符串(如果您希望将其作为格式化字符串):

var parsed = DateTime.ParseExact(str, "dd/MM/yyyy", CultureInfo.InvariantCulture);
var formatted = parsed.ToString("yyyy-MM-dd HH:mm:ss.fff");

我认为你想要格式化日期时间字符串。

答案 2 :(得分:0)

你可以试试这个:

string outputFormat = DateTime.ParseExact("26/01/2015", "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd HH:mm:ss.fff");

但我认为最好将其作为DateTime保存到数据库中,而不是字符串

答案 3 :(得分:0)

您可以将其转换为字符串,并根据您的需要将参数传递给ToString()函数,如these standard中所述。

您可以使用

DateTime d = DateTime.Now;
d.ToString("U");

答案 4 :(得分:0)

如果您使用参数存储数据(如下面的代码),则无需担心转换日期时间。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication58
{
    class Program
    {
        static void Main(string[] args)
        {
            string connStr = "Enter Your Conneciton String Here";
            string SQL = "INSERT INTO Table1 (Time_Col) VALUES ('@MyTime');";

            SqlConnection conn = new SqlConnection(connStr);

            SqlCommand cmd = new SqlCommand(SQL, conn);

            cmd.Parameters.Add("@MyTime", SqlDbType.DateTime);
            DateTime now = DateTime.Now();
            cmd.Parameters["@MyTime"].Value = now;

            cmd.EndExecuteNonQuery();

        }
    }
}