【问题标题】:How to handle date time formats and cultures如何处理日期时间格式和文化
【发布时间】:2014-02-18 19:28:26
【问题描述】:

默认情况下,我将网站的文化设置如下:

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-CA");

所以现在期待 dd/MM/YY

在一个输入框中(它有一个 jquery 日期选择器),我们允许用户输入一个日期。使用日期选择器,我们必须有如下格式:

MM/dd/YY 例如2014 年 2 月 18 日

所以现在发生的情况是,如果有人将日期设置为:02/12/2014

它正在数据库中设置,但是当日期选择器呈现时,日期是 2014 年 12 月 2 日。

我应该如何解决这个问题?即在什么级别以及如何

【问题讨论】:

    标签: c# jquery asp.net datetime


    【解决方案1】:

    这可以在客户端解决,(并且会更加用户友好,IMO)。您可以为jQuery Datepicker 指定日期格式,例如:

    $( "#datepicker" ).datepicker( "option", "dateFormat", "dd/MM/yyyy" );
    

    因此,如果用户选择一个日期,它将以dd/MM/yyyy 格式显示。它的 SelectedValue 返回您的 Javascript Date 对象,并且可以传递到服务器端。不需要解析。

    【讨论】:

    • +1:它必须在客户端解决:服务器端不知道客户端的locale*/*culture。 ..除非您要求用户提供该信息。
    • 我也可以设置 jqeury 验证日期格式吗?
    【解决方案2】:

    使用日期选择器,我们必须有如下格式:MM/dd/YY e.g. 02/18/2014

    日期选择器是给你一个字符串还是一个日期?如果它是一个日期,就把它作为一个日期。如果是字符串,则将其转换为日期并指定格式

    DateTime dt = DateTime.Parse(dateString, "MM/dd/yyyy");
    

    设置日期时相同 - 如果日期选择器需要特定格式的字符串,则 使用该格式

    datePicker.Value = dt.ToString("MM/dd/yyyy");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多