Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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中,将给定日期减去一毫秒_Java_Milliseconds_Java.util.date - Fatal编程技术网

在Java中,将给定日期减去一毫秒

在Java中,将给定日期减去一毫秒,java,milliseconds,java.util.date,Java,Milliseconds,Java.util.date,我有一个值为Thu Nov 21 00:00:00 IST 2019的日期字段expiryDate,但我试图通过从Thu Nov 20 23:59:59 IST 2019的时间中删除一毫秒来将endDate时间移到前一天 我们有什么方法可以从给定的日期中删除毫秒。有。我刚刚尝试了上面的方法getTime返回毫秒到给定的日期。 减去一毫秒就是给我一个正确的输出。 新的日期毫秒给我的日期格式 谢谢@Elliott Frisch是的。我刚刚尝试了上面的方法getTime返回毫秒到给定的日期。 减去一毫

我有一个值为Thu Nov 21 00:00:00 IST 2019的日期字段expiryDate,但我试图通过从Thu Nov 20 23:59:59 IST 2019的时间中删除一毫秒来将endDate时间移到前一天
我们有什么方法可以从给定的日期中删除毫秒。

有。我刚刚尝试了上面的方法getTime返回毫秒到给定的日期。 减去一毫秒就是给我一个正确的输出。 新的日期毫秒给我的日期格式


谢谢@Elliott Frisch

是的。我刚刚尝试了上面的方法getTime返回毫秒到给定的日期。 减去一毫秒就是给我一个正确的输出。 新的日期毫秒给我的日期格式

谢谢@Elliott Frisch

java.time 避免可怕的日期时间类,这些类从JSR310开始就是遗留的。现在被现代的java.time类所取代

您可以轻松地来回转换。调用新的转换方法addd到旧类

Instant instant = myJavaUtilDate.toInstant() ;
然后再回来

java.util.Date myJavaUtilDate = Date.from( instant ) ;
减去一毫秒

Instant oneMilliEarlier = instant.minusMillis( 1 ) ;
半开 但我建议你不要采取这种方法。不要以时间的最后一刻来追踪时间跨度

你试图追踪一天中的最后一刻是有问题的。你正在失去最后一毫秒的时间。这样做会留下一段距离,直到第二天的第一刻。当切换到更精细的时间切片时,例如某些系统(如Postgres等数据库)使用的微秒,以及其他软件(如java.time类)使用的纳秒,您会遇到更糟糕的问题

一种更好的方法是在日期时间处理中常用的半开放方法。时间跨度的开始是包含的,而结束是独占的

所以一整天都是从一天中的第一刻开始的,通常是00:00:00,但并不总是如此!,直到但不包括第二天的第一刻

提示:要处理这样的时间跨度,请添加三个额外的库来访问Interval类

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

该项目现已启动,建议迁移到类

您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要java.sql.*类

从哪里获得java.time类

、和更高版本-标准Java API的一部分,带有捆绑实现。 Java9添加了一些次要功能和修复。 和 大多数java.time功能都在中向后移植到Java6和Java7。 更高版本的Android捆绑包实现了java.time类。 对于早期的Android java.time 避免可怕的日期时间类,这些类从JSR310开始就是遗留的。现在被现代的java.time类所取代

您可以轻松地来回转换。调用新的转换方法addd到旧类

Instant instant = myJavaUtilDate.toInstant() ;
然后再回来

java.util.Date myJavaUtilDate = Date.from( instant ) ;
减去一毫秒

Instant oneMilliEarlier = instant.minusMillis( 1 ) ;
半开 但我建议你不要采取这种方法。不要以时间的最后一刻来追踪时间跨度

你试图追踪一天中的最后一刻是有问题的。你正在失去最后一毫秒的时间。这样做会留下一段距离,直到第二天的第一刻。当切换到更精细的时间切片时,例如某些系统(如Postgres等数据库)使用的微秒,以及其他软件(如java.time类)使用的纳秒,您会遇到更糟糕的问题

一种更好的方法是在日期时间处理中常用的半开放方法。时间跨度的开始是包含的,而结束是独占的

所以一整天都是从一天中的第一刻开始的,通常是00:00:00,但并不总是如此!,直到但不包括第二天的第一刻

提示:要处理这样的时间跨度,请添加三个额外的库来访问Interval类

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

该项目现已启动,建议迁移到类

您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要java.sql.*类

从哪里获得java.time类

、和更高版本-标准Java API的一部分,带有捆绑实现。 Java9添加了一些次要功能和修复。 和 大多数java.time功能都在中向后移植到Java6和Java7。 更高版本的Android捆绑包实现了java.time类。 对于较早的Android日期,b=new Datea.getTime-1;你为什么要去美国
ng日期?可能是因为它在问题中明确包含为标记。也许OP对它有一些要求。如果没有,请考虑移到java. Time.Dead B=新DATE.GETTIME-1;为什么要使用Date?可能是因为它在问题中明确包含为标记。也许OP对它有一些要求。如果没有,请考虑移动到JavaTime.为什么要使用日期?几乎没有任何正当的理由使用旧的Java遗留日期api。考虑使用LoalDead和类似的类API。@ ZabuZa有很多有效的原因来使用日期,例如使用任何日期的许多API /库,包括java运行时库中的许多API。是的,这是我几乎没有提到的。我认为最好在您自己的代码中尽可能长时间地使用非日期,然后在实际需要将其提供给旧API时转换为非日期。不管怎样,我还是留个便条吧。你为什么用Date?几乎没有任何正当的理由使用旧的Java遗留日期api。考虑使用LoalDead和类似的类API。@ ZabuZa有很多有效的原因来使用日期,例如使用任何日期的许多API /库,包括java运行时库中的许多API。是的,这是我几乎没有提到的。我认为最好在您自己的代码中尽可能长时间地使用非日期,然后在实际需要将其提供给旧API时转换为非日期。不管怎样,我还是把它留作便条吧。