设置DateTime格式
我有以下代码 –
DateTime timeStamp; timeStamp = System.Convert.ToDateTime(y.InnerText);
y.InnerText
是11/03/2013 11:35:24
。
然而,由于数据库正在寻找格式,这打破了我的import语句 –
2013-03-11 11:35:24
如何设置DateTime对象的格式?
如何设置DateTime对象的格式?
你不能。 DateTime
值没有格式,只有int
或double
值。 当您想要将它们转换为字符串/从字符串转换时,您可以在其中指定任何格式信息。
相反,您应该使用参数化SQL并避免首先将DateTime
值转换回字符串。 这是一般的最佳实践 – 不要在SQL字符串中包含值; 参数化SQL有许多好处:
- 它避免了SQL注入攻击
- 它避免了像这样的转换问题
- 它使您的代码(SQL)与您的数据(参数值)分开
我还建议您在解析时指定预期的格式,而不是使用Convert.ToDateTime
。 例如:
timeStamp = DateTime.ParseExact(y.InnerText, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
基本上,我尝试应用的两条规则是:
- 避免在您不需要的情况下执行任何转换。 如果您确保每个系统尽可能使用正确的数据类型,则通常不需要进行任何转换。
- 在需要转换为字符串表示的位置时,要非常明确地表示要使用/生成的表示。 对于机器可读的值,通常应使用不变文化和可能的自定义日期/时间格式。 对于人类可读的值,通常应该使用用户的文化和标准的日期/时间格式。
如果您将日期时间传递给sql数据库尝试使用yourdatetime.ToString(“yyyy / MM / dd”)格式,这将适合您。
还有一件事你可以为Applicaton文化添加日期时间格式。 所以这会根据你的需要对待你的日期时间格式。
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); } } }
我使用此步骤1.转换为DateTime。 2.使用ToString(); function
示例:
DateTime myDateTime = DateTime.Now; string myDateTimeString = myDateTime.ToString("yyyy-mm-dd hh:mm:ss");
你可以使用ToString转换到2013-03-11 11:35:24
DateTime timeStamp; timeStamp = System.Convert.ToDateTime(y.InnerText).ToString("yyyy-MM-dd HH:mm:ss");
基本上日期没有格式。 如果数据库parameter/field
是Datetime type
,则应该作为Date类型传递 。 将日期作为字符串传递不是一个好主意。
但是,如果您需要处理这些事情,那么最好在参数化查询中以非none culture specific date format
(ISO8601或ISO)传递日期。 否则,您可能会遇到不同文化设置中的数据库服务器问题。
例如,对于sql server,在ISO8601中传递日期时是安全的( 在转换中 );
'yyyy-mm-ddThh:mi:ss.mmm' //(no spaces)
如果你只是覆盖DateTime对象的ToString()方法怎么办? 你不能选择你想要的格式,每次使用它时,它都会按照你想要的方式进行格式化,而不会受到它的困扰。
这只是一个想法,所以我不知道是否有更好的解决方案。
然后,您可以使用属性年,月,日来构建它,就像您想要的那样。 就像是:
public override ToString(){ return this.Year + "-" + this.Month + "-" + this.Day; }
问候
- 为什么我从VirtualPathUtility ToAbsolute获得一些具有某些路径的HttpException?
- 任何引用/ MSDN教程显示支持“if(!condition)”或“if(condition == false)”?
- 如何将一种类型的表达式树转换为不同的表达式类型?
- OWIN AuthenticationOptions在运行时在mvc5应用程序中更新
- Moq和reflection,将动态生成的表达式树/ lambda传递给moq
- 如何在asp.net c#中获取所有url参数及其值的列表?
- 以编程方式在命名目标位置打开pdf文件
- 如何轻松地允许用户更新使用的样式是XAML(UWP)中的元素
- 将JSON字符串反序列化为Dictionary