2009-04-26 67 views
3

日期我一直以来有使用日期这个问题“曾经”如何验证在asp.net

我住在这里,我们使用了英国的日期格式例如一个国家dd/mm/yyyy,但每次我尝试对美国服务器上托管的SQL数据库执行查询时,100%的时间都会遇到错误。

Convert.ToDateTime("2007-17-5")产生错误,因为Convert.ToDateTime("2007-5-17")也会产生错误。

许多验证方法,许多t-sql查询和许多其他方法我试过,并在我的大部分项目中部分解决,但是,我想知道是否有人有通用方法将字符串转换为日期那不会造成任何问题?

或任何有关处理日期的好资源?

-----------编辑... -----------------

即使我正确的格式中的日期,查询到sql服务器不产生任何价值,即使我确信有..例如..如果我正在寻找属于2009年1月1日(即2009年1月1日)之间的日期通过1/5/2009(即2009年5月1日)没有记录被返回。当我尝试在sql server的查询生成器中更改日期时,它给了我一个错误,说它不是我输入的有效日期...

+0

“2007-5-17” 不是有效的国际日期,“2007-05-17”是。如果您打算使用国际格式“YYYY-MM-DD”,则需要包含前导0。 – jrcs3 2009-04-27 02:07:28

+0

谢谢你jrcs3,领先的零是我失踪...而我终于高兴地发现,有一个国际化的工作方式与日期,因为它给了我足够的头痛,直到现在... – 2009-04-28 05:04:01

+0

酷,我添加评论作为答案。 – jrcs3 2009-04-28 13:39:08

回答

2

您在UI中处理了很多日期验证。

首先,在你的webconfig,你需要设置你的文化:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB" /> 

您可以通过设置类型属性为“日期”使用在客户端CompareValidator控件使用。

<CompareValidator ID="id" runat="server" 
    ControlToValidate="controltovalidateid" 
    ErrorMessage="Invalid Date" 
    Type="Date" /> 

限制用户选项我已经在ASP.NET中使用日历控件。关于控制的一个好处是,你可以设置该属性的日期格式:

<ajaxToolkit:Calendar runat="server" 
    TargetControlID="Date1" 
    CssClass="ClassName" 
    Format="dd/mm/yyyy" 
    PopupButtonID="Image1" /> 

其他信息