我有一个字符串
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
。
有可能吗?任何帮助表示赞赏
答案 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();
}
}
}