我有以下代码 -
DateTime timeStamp;
timeStamp = System.Convert.ToDateTime(y.InnerText);
y.InnerText
是11/03/2013 11:35:24
。
然而,由于数据库正在寻找格式,这将破坏我的导入语句 -
2013-03-11 11:35:24
我该如何设置DateTime对象的格式?
DateTime
值没有格式,就像 int
或 double
值一样。当您想要将它们转换为/从字符串时,那是您指定任何格式信息的地方。 DateTime
值转换回字符串。这是一般最佳实践-不要在SQL字符串中包含值; 参数化SQL具有多个好处:
Convert.ToDateTime
。例如:timeStamp = DateTime.ParseExact(y.InnerText,
"dd/MM/yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
基本上,我尝试应用的两个规则是:
我使用以下步骤:
示例:
DateTime myDateTime = DateTime.Now;
string myDateTimeString = myDateTime.ToString("yyyy-MM-dd hh:mm:ss");
MM
。 - Madivad如果您想将日期时间传递到SQL数据库,请使用"yourdatetime.ToString("yyyy/MM/dd")"格式进行尝试,这将对您有所帮助。
还有一件事情,您可以为应用程序文化添加日期时间格式。这样,它将按照您的要求处理日期时间格式。
using System;
using System.Globalization;
using System.Threading;
namespace test {
public static class Program {
public static void Main() {
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = "yyyy/MM/dd HH:mm:ss";
culture.DateTimeFormat.LongTimePattern = "";
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine(DateTime.Now);
}
}
}
'yyyy-mm-ddThh:mi:ss.mmm' //(no spaces)
如果您覆盖DateTime对象的ToString()方法会怎么样呢?那么您不就能选择您想要的格式,每次使用时都可以按照您想要的方式进行格式化而不会受到干扰。
这只是一个想法,我不知道是否有更好的解决方案。
然后,您可以使用属性年份、月份和日期来构建它,例如:
public override ToString(){
return this.Year + "-" + this.Month + "-" + this.Day;
}
问候
你可以使用ToString转换为2013-03-11 11:35:24
DateTime timeStamp;
timeStamp = System.Convert.ToDateTime(y.InnerText).ToString("yyyy-MM-dd HH:mm:ss");
DateTime
,那么我猜你正在使用字符串拼接来创建查询。请使用参数化查询。 - HabibDateTime
不关注格式,只有在转换为字符串时才会本地化。 - Lloyd参数/字段
是日期时间类型
,那么你应该没问题。将日期作为字符串传递不是一个好主意。基本上,日期没有格式。 - Kaf