Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java相当于.NET DateTime.MinValue、DateTime.Today_Java_Datetime_Date - Fatal编程技术网

Java相当于.NET DateTime.MinValue、DateTime.Today

Java相当于.NET DateTime.MinValue、DateTime.Today,java,datetime,date,Java,Datetime,Date,Java Date类中是否有DateTime.MinValue和DateTime.Today的Java等价物?或者是实现类似目标的方法 我已经意识到你对.NET datetime类有多么着迷,我还需要相当于AddDays()、AddMonths()的函数。事实上的Java datetime API是 有了它,您只需构造newdatetime(),即可获得当前日期/时间 类似地,如果没有它,您可以使用Calendar.getInstance()或new Date()获取当前日期/时间 MinVal

Java Date类中是否有DateTime.MinValue和DateTime.Today的Java等价物?或者是实现类似目标的方法


我已经意识到你对.NET datetime类有多么着迷,我还需要相当于AddDays()、AddMonths()的函数。

事实上的Java datetime API是

有了它,您只需构造
newdatetime()
,即可获得当前日期/时间

类似地,如果没有它,您可以使用
Calendar.getInstance()
new Date()
获取当前日期/时间


MinValue
可以是
Calendar.getInstance(0)
/
新日期(0)
。这将使用默认的年表-即自1970年1月1日起。由于
MinValue
返回第一年的1月1日,您可以通过使用
DateTime
的相应构造函数指定此日期来执行此操作,大多数日期操作现在都应该使用Calendar对象来完成


要获取当前日期,请执行以下操作:

日历=Calendar.getInstance(); SimpleDataFormat dateFormat=新的SimpleDataFormat(“dd/MM/yyyy”)

有日历

日期

还有用于格式化的SimpleDataFormat。

比较.NET和Java中的日期/时间功能 补充说明:

  • 处理日期和时间很麻烦。此表旨在作为代码迁移的起点。比较比较的是概念,而不是精确的值(例如,NET的最小日期/时间与Java的值不同)
  • 是Java首选的日期/时间库
  • 请参见Java中的新日期(Long.MIN\u值)
  • 用Java的日期开始新的一天稍微复杂一点-
  • .NET日期时间默认为本地日期/时间,而在Java中默认为UTC。在处理日期和时间时,务必考虑任何事项。

  • 其他答案可能是正确的,但使用过时的类

    java.time 旧的日期时间类(java.util.date/.Calendar等)被替代,而java 8及更高版本中内置的框架又取代了旧的日期时间类。time类受ThreeTen Extra项目的启发,由该项目定义,由该项目扩展,由该项目向后移植到Java6和Java7,并在该项目中适应Android。看

    要获得时间线上分辨率为的当前时刻,请使用

    Instant
    有三个常量:

    • 1970-01-01T00:00:00Z
    • -100000000-01-01T00:00Z
    • 100000000-12-31T23:59:59.99999999 Z
    若要获取的当前时刻,请应用a以获取

    如果已知,最好应用(偏移量加上异常规则,如夏令时)。申请一份工作以获得一份工作

    你可以做算术

    ZonedDateTime dayLater = now.plusDays( 1 );
    ZonedDateTime monthLater = now.plusMonths( 1 );
    
    你可以得到一天中的第一刻

    ZoneId zoneId = ZoneId.of( "America/Montreal" );
    ZonedDateTime tomorrowStart = now.toLocalDate().atStartOfDay( zoneId );  // Usually time-of-day of `00:00:00.0` but not always.
    
    如果您只需要一个没有时间和时区的日期,请使用。类似地,仅适用于不带日期和时区的时间。通常最好坚持使用
    Instant
    OffsetDateTime
    /
    zoneDateTime
    ,因为
    Local…
    类型不代表时间线上的实际时刻(没有偏移或时区意味着它们未定义)


    这并不能回答他的问题。@Bozho,正如Chris所理解的,我正试图为他指出使用核心Java进行日期处理的正确方向。我不认为是Bozho,我已经读了足够多的你的答案,所以我觉得你没有那么小气。我承认答案本可以有更多的细节,但我真的没有时间。Java内置日期不好。花3秒钟的时间在Joda time周围构建,你会更开心。我听说过Jon Skeet的api,但是这个android友好吗?我相信它完全是android友好的。(Jon Skeet将JodaTime移植到.NET(noda time))我认为Joda time不是他的noda time,我会尝试一下。我可以用历元作为最小值(我正在寻找一些东西来表明没有设置日期),我也不太确定相反的想法。请看。第一个问题仍然没有答案
    Instant now = Instant.now();
    
    OffsetDateTime now = OffsetDateTime.now( ZoneOffset.of( "-04:00" ) );
    
    ZonedDateTime now = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) );
    
    ZonedDateTime dayLater = now.plusDays( 1 );
    ZonedDateTime monthLater = now.plusMonths( 1 );
    
    ZoneId zoneId = ZoneId.of( "America/Montreal" );
    ZonedDateTime tomorrowStart = now.toLocalDate().atStartOfDay( zoneId );  // Usually time-of-day of `00:00:00.0` but not always.
    
    LocalDate localDate = LocalDate.now( zoneId );
    LocalTime localTime = LocalTime.now( zoneId );