不同服务器上服务器的全局文化不同时的日期时间问题

2023-11-22

我的网站托管在不同位置的多个服务器上

每个地方的数据格式文化都不同 - 我们使用mm/dd/yyyy格式化每个地方,但以防某些服务器将区域性设置为dd/mm/yyyy然后我们的网站会生成日期时间异常。


每当将字符串转换为日期时,您都应该指定要使用的区域性。

您应使用的区域性取决于日期格式的区域性。例如,如果您正在解析的所有日期的格式为Slovak:

String s = "24. 10. 2011";

然后你需要解析该字符串,就像它在斯洛伐克(斯洛伐克) (sk-SK) 文化:

//Bad:
d = DateTime.Parse(s);

//Good:
d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("sk-SK")); //Slovak (Slovakia)

如果您的日期都在塔吉克语(塔吉克斯坦西里尔字母),那么你需要将其解析为tg-Cryl-Tj:

String s = "24.10.11"

DateTime d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("tg-Cryl-Tj"));

这就引出了一个问题:您使用什么日期格式?您不应该依赖服务器的区域设置,您应该决定您想要什么格式。

//Bad
String s = d.ToString();

//Good
String s = d.ToString(CultureInfo.CreateSpecificCulture("si-LK")); //Sinhala (Sri Lanka)

//s = "2011-10-24 12:00:00 පෙ.ව."

我怀疑你更喜欢用英语做所有事情。但接下来你必须决定英语的哪种变体:

  • en-AU(澳大利亚英语):24/10/2011
  • en-IA(英属印度):24-10-2011
  • en-ZA(南非英语):2011/10/24
  • en-US(美国英语):10/24/2011

我怀疑你更喜欢英语(印度) (en-IA).


但是,如果您确实无法决定在将日期转换为字符串时使用哪种区域性,反之亦然,并且日期永远不会向用户显示,那么您可以使用不变的文化:

String s = "10/24/2011" //invariant culture formatted date

d = DateTime.Parse(s, CultureInfo.InvariantCulture); //parse invariant culture date

s = d.ToString(CultureInfo.InvariantCulture); //convert to invariant culture string
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不同服务器上服务器的全局文化不同时的日期时间问题 的相关文章

随机推荐

  • 如何找到浏览器中断文本段落的位置

    我需要在浏览器自然在文本段落中添加换行符的位置添加换行符 例如 这是一段很长的文字 n跨越段落中的多行 这是浏览器选择在以下位置中断的段落 n 我需要找到这个位置并插入一个 有谁知道有什么 JS 库或函数可以做到这一点吗 到目前为止 我找到
  • 如何在外部隐藏/显示 ng-grid 列?

    我在用ng grid我想去哪里隐藏 显示外部列按钮点击 我尝试过这个 但它不起作用 scope gridOptions gridScope columns 0 toggleVisible 尝试使用 ng click 指令 你的 html 按
  • 如何告诉 gcc 在 switch/case 语句上不间断地发出警告(或失败)?

    我有一个复杂的switch声明 我忘了加上break在其中之一的末尾cases 这是相当合法的 因此我陷入了下一个case 如果我忽略了 有什么方法可以让 gcc 发出警告 甚至更好 失败 break陈述 我意识到有许多有效的用例 并且我经
  • 将数字 (22,21) 映射到 BigDecimal 时,Hibernate 导致结果精度损失

    我在 Oracle 11g 中将此列映射为 NUMBER 21 20 在 Hibernate 中映射为 Column name PESO precision 21 scale 20 nullable false public BigDeci
  • Workflow Foundation - Literal 仅支持值类型和不可变类型 System.String

    我对名为 MyCodeActivity 的 WF 代码活动进行了以下单元测试 ExpectedException typeof ArgumentException TestMethod public void ShouldRequirePa
  • Chartjs:尝试旋转 y 轴标签

    我尝试过类似的事情maxRotate and rotate 将它们放入scaleLabel等等 我在文档中找不到任何内容 谷歌上的搜索结果也没有多大帮助 var myChart new Chart ctx type line data ch
  • 在 PHP 中包含大量文件(就像基于文件的会话一样)是否不好?

    在阅读了基于文件的 PHP 会话对于性能而言如何不是最好的之后 我开始思考 这是否意味着包含大量文件的 PHP 脚本也很糟糕 因为它包含一个文件 或者这与检索会话数据文件的方式不同 您应该使用 spl autoload register 和
  • 自动跟踪程序执行[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想知道我们是否可以在任何 C 或 C 应用程序中启用跟踪 例如 使用 gcc 选项或小工具 我将启用跟踪 并将跟踪打印在控制台上或转储到文件中 由
  • C++1z 范围的状态? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 C 委员会中有一个关于范围的研究小组 但我没有关注这个研究组的历史 并且我不确定 C 1z 预计会提供什么样的交付 而且我不使用 boost range 所以我对现有实践没有清晰的看
  • 在 SQLAlchemy 中查询混合属性

    我将文件路径存储为数据库中的相对路径 但随后使用混合属性在映射时将其转换为绝对路径 当我使用此属性查询时 它会抛出错误 这是模型 class File Base tablename files f path Column Unicode 3
  • 文本框宽度问题 - ASP.NET

    我在网站页面上有一个生成文本框的用户控件 文本框已指定宽度 但文本框间歇性地以比代码中指定的宽度小得多的宽度显示 我要求用户向我发送 查看源代码 输出的副本 以便我可以比较好结果和坏结果 我所说的 间歇性 是指类似的构建 不同的计算机 请注
  • 在商业软件中分发jquery许可证[关闭]

    Closed 这个问题是无关 目前不接受答案 我正在构建一个使用 jquery 的商业 Web 应用程序 我想我需要使用MITjquery 的许可证 因为该应用程序是商业应用程序 当我在维基百科上查看 MIT 许可证时 它说 这是一个宽松的
  • 无法连接到“localhost”上的 MySQL 服务器 (10061)

    我最近在 Windows 2003 上安装了 MySQL 5 并尝试配置实例 一切工作正常 直到我进入 应用安全设置 此时它给了我上述错误 Can t connect to MySQL server on localhost 10061 我
  • 使用ANT更新内部版本号并注入源代码

    在我的 build xml 文件中 我在属性文件中增加构建版本号 如下所示
  • Python 中的构造“ if __name__ == '__main__' ” [重复]

    这个问题在这里已经有答案了 我已经阅读了很多关于此的文章 if name main 但我不明白 我将分享你的代码 更简短的解释是什么 我创建了一个文件 ab py def a print A function in ab file a 第二
  • “git checkout --” 和有什么不一样?和“git Reset HEAD --hard”?

    这不是关于 的作用的一般问题 如标记的重复项中所示 这是一个特定于 git 的问题 要求澄清上述命令之间的操作差异 如果我想清理当前目录而不存储或提交 我通常使用以下命令 git reset HEAD hard git clean fd 一
  • 在 JSP 中编写 URL

    假设我当前的 URL 是 app jsp filter 10 sort name 我在 JSP 中有一个分页组件 它应该包含如下链接 app jsp filter 10 sort name page xxx 如何通过向当前 URL 添加新参
  • 如何在javascript中获取输入文本长度并验证用户

    我想根据输入字段右侧的长度 对于我的情况五 来验证用户在创建帐户时输入的用户名和密码是否安全 通过以不同的颜色显示 即较短 的红色 否则为绿色 我怎样才能用javascript做到这一点 JavaScript 验证并不安全 因为任何人都可以
  • 从 NIF 调用 Erlang 函数

    是否可以从 NIF 调用 Erlang 函数 回调函数 我读了文档 http www erlang org doc man erl nif html 但没有找到如何做到这一点 不 从 NIF 调用 Erlang 函数是不可能的 您可以在 E
  • 不同服务器上服务器的全局文化不同时的日期时间问题

    我的网站托管在不同位置的多个服务器上 每个地方的数据格式文化都不同 我们使用mm dd yyyy格式化每个地方 但以防某些服务器将区域性设置为dd mm yyyy然后我们的网站会生成日期时间异常 每当将字符串转换为日期时 您都应该指定要使用