【问题标题】:Date or DateTime Object to Be independent of the Page Culture日期或日期时间对象独立于页面文化
【发布时间】:2010-12-28 23:03:14
【问题描述】:

Dim strTime as String = FomatDateForSave("28/12/2010")

Public Shared Function FormatDateForSave(ByVal strDate As String) As Date

        FormatDateForSave = Date.ParseExact(strDate,'dd/MM/yyyy', System.Globalization.CultureInfo.InvariantCulture) 

    End Function

我希望 strTime 为 "12/28/2010" .... 但它正在转换为 "28/12/2010" ....

问题是当操作由FormatDateForSave 执行时......它将其转换为“12/28/2010”......

但是当它被返回时,它又被转换为“12/28/2010”

我已将 Page.Culture 的日期设置为“dd/mm/yyyy”,并希望将值“mm/dd/yyyy”保存在数据库中。

【问题讨论】:

  • 我的解决方案的问题是当我将它保存到 String 时,它使用的是使用当前文化的 toString()。所以它改变了日期的格式。

标签: asp.net datetime date culture


【解决方案1】:

您应该将日期存储在数据库中作为它的本机类型,而不是字符串。当你获取它时,你应该格式化它。

【讨论】:

  • 我正在将日期保存为数据库中的日期...我正在阅读英制格式的日期,并希望将其以美国格式保存在数据库中...
  • 日期就是日期。您不能将日期另存为格式。这就像说你以八进制格式存储一个整数。
  • SQL Server 设置为美国格式...所以无论我在其中输入的任何日期都应该转换为美国格式...我无法将 SQL Server 更改为其他格式...。跨度>
  • msdn.microsoft.com/en-us/library/ff848733.aspx 你的日期栏是什么类型的。
  • 它的 Date 和 DateTime 都 .... msdn.microsoft.com/en-us/library/aa226054%28v=sql.80%29.aspx ..... 所以默认情况下我们的 DB 是 1 101 USA mm/dd/yy ...... 所以我需要转换每次将其保存到数据库时都转换为美国格式....我知道我也可以将英国格式保存在数据库中...但我希望数据库中的日期和日期时间值保持一致....
【解决方案2】:

为什么不在插入/更新操作之前在 sql 中转换日期? 例如

SELECT convert(varchar, getdate(), 101) will give you date in mm/dd/yyyy format.

Sql Convert

【讨论】:

  • 我们已经在很多地方使用了这个功能,在每个地方替换这个功能会很乏味.....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 2017-04-25
  • 2021-04-16
相关资源
最近更新 更多