【发布时间】:2014-01-22 07:07:41
【问题描述】:
我阅读了更多与本地化最佳实践相关的文章。从它们我们可以确定始终 UTCtime 最适合处理日期时间。像这样我们有一些指导,比如字符串的连接,ui等。
但我还发现一篇文章说我们需要处理字符串/整数转换。我没有正确理解。以下是解释
“请确保在调用 ToString() 时始终传递 CultureInfo,除非它不受支持。这样您就可以评论您的意图。例如:如果您在内部使用某个数字并且由于某种原因需要将其转换为字符串使用:
int i = 42;
var s = i.ToString(CultureInfo.InvariantCulture);
对于将要显示给用户使用的数字:
var s = i.ToString(CultureInfo.CurrentCulture); // formatting culture used
这同样适用于 Parse()、TryParse() 甚至 ParseExact() - 如果没有正确使用 CultureInfo,可能会引入一些讨厌的错误。那是因为微软中的一些可怜的灵魂,充满了善意,决定将 CultureInfo.CurrentCulture 视为默认值是一个好主意(如果你不传递任何东西,它将被使用) - 毕竟当有人使用 ToString( ) 他/她想向用户显示它,对吗?结果并非总是如此 - 例如尝试将您的应用程序版本号存储在数据库中,然后将其转换为 Version 类的实例。祝你好运。 "
但为什么需要这样做。那么在所有数据类型中,我们需要像这样转换/做吗?这样做有什么好处,因为我得到了与不添加文化信息相同的结果。
【问题讨论】:
标签: c# asp.net localization