gpt4 book ai didi

c# - 在 Binder 中解析日期的最佳方法是什么

转载 作者:太空狗 更新时间:2023-10-29 21:58:17 24 4
gpt4 key购买 nike

在模型绑定(bind)器中使用这样的代码是否是一个好方法:

TryParseDate(result.AttemptedValue, format, out parsedDate) 

然后“格式”是一个具有不同(客户特定)日期格式的变量。比如 12/31/2013 或 31.12.2013 或其他。

我在格式绑定(bind)方面遇到了很大的问题,因为如果用户只输入一位数字的日期,例如:1/1/2014 它不会解析,因为在“格式”值中允许的格式:dd/MM/yyyy我知道可以通过将此格式替换为 d/M/yyyy 来解决,然后它适用于这两种情况,但这是好方法还是危险?

提前致谢!

最佳答案

我建议保留默认的模型 Binder 来完成它的工作,它做得很好并且会为您处理本地化问题(即不同区域设置的不同日期格式)。

考虑到用户输入日期的方式始终存在限制(例如,您不允许他们输入 yyyy-MM-dd,即使它是有效的日期格式).您的自定义 Binder 代码不会更改它,因为它提供了一种格式。

我建议您的目标应该是允许用户以他们最常用的格式输入日期(例如,英国或西类牙的 dd/MM/yyyyMM/dd/yyyy 在美国等)。这将处理大多数情况。如果您需要迎合不同地区的用户,默认的模型绑定(bind)器会为您做这一切,只要您为用户 session 设置线程文化:

string cultureCode = "en-GB";    //retrieve eg. from user profile
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureCode)

如果您想帮助以其他格式输入日期的用户,只需在您的页面上放置一个提示,解释预期的格式。

如果您真的必须接受每个语言环境的多种格式,您将需要编写一个自定义模型绑定(bind)器,并且可能想要尝试为您处理的每个语言环境将一组可接受的格式传递给它。

关于c# - 在 Binder 中解析日期的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17565330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com