不同文化的日期时间转换

发布于 2025-01-04 02:13:41 字数 459 浏览 1 评论 0原文

我想知道转换日期时间的最佳方法是什么? 现在我的计算机设置为dd/mm/yyyy,但我将日期设置为mm/dd/yyy,所以当我尝试这样做时,

DateTime.Convert();
DateTime.Parse();
DateTime.TryParse();

我要么什么也没有得到,要么它崩溃。现在我可以告诉它 mm/dd/yyyy 格式,它可能会转换。但问题是这些日期来自用户上传的文件。

它们可以是任何格式的组合。我正在努力寻找方法来做到这一点。

我看到的问题是我正在查看上传文件中的日期,因此我不确定查看浏览器日期格式是否有帮助。

我正在使用 asp.net mvc,我试图找到一个自动处理日期格式的解决方案,这样我就不必询问用户他们拥有的日期格式(我认为我必须问他们的事情越多,可能性就越小用户将继续)

I am wondering what is the best way to figure out how to convert a datetime?
Right now my computer is setup as dd/mm/yyyy yet I am taking date as mm/dd/yyy so when I try to do

DateTime.Convert();
DateTime.Parse();
DateTime.TryParse();

I either get nothing back or it crashes. Now I could tell it about the mm/dd/yyyy format and it probably would convert. However the problem is these dates are are coming from user uploaded files.

They could be in any format combination. I am trying to find ways to do it.

The problem I see is that I am looking at the dates in an uploaded file so I am not sure if looking say at the browser date format would help or not.

I am using asp.net mvc and I am trying to get a solution that handle date formats automatically so I don't have to ask the user about the date format they have (I figure the more things I have to ask them the less likely the user will continue on)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过潦 2025-01-11 02:13:41

不,一旦该值位于服务器上,您就无法自动找出用户打算使用的日期时间格式。您需要更多信息才能正确解析它(例如,1/2/3 可能意味着许多不同的日期,具体取决于文化)。

请考虑以下解决方案之一:

  1. 在将输入的日期发送到服务器之前,在客户端上使用 JavaScript 将输入的日期转换为标准格式(即 ISO 8601 - 2012-02-09)的文本表示形式。代码如下所示:d.getUTCFullYear()+"-" + d.getUTCMonth() + "-" + d.getUTCDate()
  2. 将本地文化信息与要转换的日期值一起发送到服务器,并在服务器上进行转换。
  3. 强制用户以特定格式输入日期(例如,使用 3 个标记为“月”、“日”和“年”的文本框,而不是一个可自由输入的文本框)。

No, you can't figure out automatically what date-time format a user meant to use once the value is on the server. You need more information to parse it correctly (e.g. 1/2/3 can mean a lot of different dates depending on the culture).

Consider one of the following solutions:

  1. Convert the entered date to a text representation in a standard format (i.e. ISO 8601 - 2012-02-09) using JavaScript on the client before you send it to the server. The code would look something like this: d.getUTCFullYear()+"-" + d.getUTCMonth() + "-" + d.getUTCDate().
  2. Send the local culture information to the server along with date value to be converted and do the conversion on the server.
  3. Force the user to enter the date in a specific format (e.g. Use 3 text boxes labeled "Month", "Day", and "Year" instead of one text box with free input).
要走就滚别墨迹 2025-01-11 02:13:41

chobo2(我喜欢“句柄”):)

你可以检测语言环境并随意处理。请参阅以下 SO Q/A 以获得指导:

系统在哪里.Net 的语言环境/文化设置

关键是不必特别设置任何内容,而是识别语言环境并采取相应的操作。

chobo2 (I like the 'handle') :)

you can detect the locale culture and work on that at will. see the following SO Q/A for pointers:

Where is the system locale/culture set for .Net

the key is to NOT have to set anything in particular, but identify the locale and act accordingly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文