|
|
1
2
迁移服务器时,如果可能的话,我建议您使用与以前相同的区域设置(控制面板)。只要这样做,你就可以避免很多问题。 但是,如果新服务器将托管其他需要其他区域设置的应用程序,或者由于新策略而必须这样做,那么这可能是不可能的。 在任何情况下,最好在所有Parse和ToString()调用期间明确指定适用的格式。 甚至还有一个FxCop(和静态分析)规则。 更新以反映有关该问题的新信息: 转换。ToDateTime是一个“便利”方法,实现如下:
请注意,它调用DateTime。解析传递显式的CultureInfo(CultureInfo.CurrentCulture)。 文化信息。CurrentCulture从Thread获取它的值。当前线程。当前文化。 您可以查看CultureInfo。CurrentCulture查看它实际返回的CultureInfo和/或进一步调查以尝试理解正在发生的事情,但另一方面,建议您 将字符串解析为其他数据类型(如DateTime、Double等)时使用的格式化程序。 正如我在最初的回答中所说,有一个FxCop(静态分析)规则来检查是否缺少传递给重载方法的IFormatProvider,这些重载方法接收IFormatProvider的实例: CA1305 . 所以我建议你重写代码,大致如下:
|
|
|
2
1
最后(我不确定这是否是最好的方法),我不得不从IIS7中选择计算机,并将那里的全球化设置设置为en-GB。这确实解决了这个问题,除非另有说明,否则我未来的所有其他网站都将保持这种文化。
|
|
|
3
0
当您将字符串转换为日期时,您应该指定要使用的区域性。 您应该使用的区域性取决于日期的格式。例如,如果您正在解析的所有日期的格式都是 斯洛伐克语 :
然后,您需要解析字符串,就像它在
如果你的日期都在
塔吉克语(塔吉克斯坦西里尔文)
,然后您需要将其解析为
这就引出了一个问题:你使用什么日期格式?你不应该依赖服务器的区域设置,你应该决定你想要什么格式。
我怀疑你更喜欢用英语做任何事情。但接下来你必须决定哪种英语变体:
但是,如果您真的无法决定在将日期转换为字符串时使用哪种文化,反之亦然,并且日期永远不会显示给用户,那么您可以使用 固定区域性 :
|