gpt4 book ai didi

c# - .Net 和 Java 中的日期格式字符串

转载 作者:行者123 更新时间:2023-11-30 06:37:56 24 4
gpt4 key购买 nike

我有一个在 C# .NetJava 上运行的应用程序。两个完全独立但相同的代码库。我遇到的问题是格式化日期和数字。

例如:运行 .Net 变体的用户正在输入日期和格式字符串。 1986 年 4 月 26 日的格式为 1986-04-26。实际日期连同格式字符串被序列化为一个 XML 文件。稍后,另一个运行 Java 变体的用户打开所述 XML 文件并查看日期。我希望它们看起来一样。

最好的方法是什么? Java 和 .Nets 格式字符串之间似乎没有一对一的映射。我是否应该将可能的格式限制为我知道我可以在 .Net 和 Java 中完全表示的选择?

最佳答案

我强烈建议不要自己编写任何解析器和编写器,而是依赖现有的库和标准。当您想写入/读取 XML 文件时,我强烈建议您使用日期时间标准:ISO 8601 .

Java:

你可以使用 Joda Time ,一个支持 ISO 8601 的库。格式 weekDateTimeNoMillis(参见 doc)提供了您需要的一切,如果您还想保留最终存储时间的可能性的话:

  • 日期
  • 时间
  • 时区(UTC 的“Z”或不同时区的 +/-HH:MM)。

date(参见 doc)可能是正确的,如果您不想存储时间信息。它的格式为 yyyy-MM-dd(注意:如果您执行字符串排序算法,它将按日期正确排序)

C#:

.net 框架已经提供了 ISO 8601 写入器和解析器:DateTime.UtcNow.ToString("s") 将写入正确的格式 yyyy-MM-ddTHH:mm:ss

您看:您只需决定一种格式(仅日期、日期时间或带时区的日期时间)并使用两种语言的相应工具,一切都会顺利进行。如果您不准确指定格式,可能会发生奇怪的事情:您无法在不知道其格式的情况下识别 10-09-08,是吗:

  • 2010 年 8 月 9 日
  • 2010 年 9 月 8 日
  • 2008 年 9 月 10 日
  • 2008 年 10 月 9 日
  • ... ?

你/解析器无法知道。

关于c# - .Net 和 Java 中的日期格式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2812626/

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