Kje*_*din 7 c# java datetime max jodatime
我翻译了一些C#-code到Java和选择JodaTime的DateTime类,以取代C#的System.DateTime.
在C#该DateTime班有一个叫做场MaxValue和一个叫MinValue,它返回的最大和最小的可能值,该DateTime对象可以容纳.
我试图用JodaTimeapi 实现同样的目标.我已经阅读了其他帖子的一些建议
这一个:Java等价的.NET DateTime.MinValue,DateTime.Today回答如何使今天的日期JodaTime,但在回答问题的后半部分时,关于最小值,他们转向Calendar和Date
同样地,我已经看到了关于将最大化的long值作为构造函数参数传递的建议,但是它被批评为依赖于将来可能会更改的类,因此在API更新之后可能不兼容或准确.
那么,有没有一种正确的方法可以做到这一点?如果没有,有没有一个很好的方法来实现这一目标?
Java 8 LocalDate有两个值.LocalDate.MAX和LocalDate.MIN
LocalDate.MAX - 支持的最大LocalDate,'+ 999999999-12-31'.这可以被应用程序用作"远期未来"日期.
LocalDate.MIN - 支持的最小LocalDate,' - 999999999-01-01'.这可以被应用程序用作"远期"日期.
注意:这些不会转换为Long.MIN_VALUE或Long.MAX_VALUE.
我建议使用Java 8,如果从C#迁移,以及日期/时间的工作方式对您来说很重要,因为它有闭包和基于JodaTime的新DateTime API.如果您担心API的未来,那么您应该使用这个新的DateTime API.
我认为你可以假设Long.MIN_VALUE和Long.MAX_VALUE永远不会改变,因为它们基于有符号64位值的工作原理的定义.(在你出生之前,64位值的工作方式是如何标准化的,很有可能)你也可以假设Date它不会发生变化,因为它自发布以来没有太大的变化,因为它已被替换,所以更改它的理由更少.理论上它可能会被弃用,但实际上仍有太多的代码使用它.
恕我直言,我long用来表示毫秒级的时间ala System.currentTimeMillis(),我使用Long.MIN_VALUE和Long.MAX_VALUE.
如果您担心使用良好的API并在将来验证代码,我建议您避免使用日历.并非一切都不好,但有充分的理由想要替换它.