已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
21小时前关门了。
Improve this question
在java中,我怎样才能得到一个未来时间的毫秒数?
这个想法是为了能够等待10分钟,直到未来的时间。
目前代码:
LocalDateTime now = LocalDateTime.now();
//int year = now.getYear();
//int month = now.getMonthValue();
//int day = now.getDayOfMonth();
//int hour = now.getHour();
//int minute = now.getMinute();
//int second = now.getSecond();
//int millis = now.get(ChronoField.MILLI_OF_SECOND); // Note: no direct getter available.
//String myfuturedateasstring = "2014/10/29 18:10:45";
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//Date myfuturedateasdate = sdf.parse(myDate);
int timeintervaldelay = 10;
Calendar myfuturedateasdate = Calendar. getInstance();
myfuturedateasdate.setTime(LocalDateTime);
myfuturedateasdate.set(Calendar.MILLISECOND, timeintervaldelay );
long futuredateinmilliseconds = myfuturedateasdate.getTime();
//var date1 = new Date("7/11/2010");
//var date2 = new Date("12/12/2010");
long millisecondstostartin = Math.abs(futuredateinmilliseconds - millis);
//var diffmilliseconds = Math.ceil(timeDiff / (1000 * 3600 * 24));
System.out.println(millisecondstostartin);
3条答案
按热度按时间3xiyfsfu1#
为了测量时间差,我会避免使用
LocalTime
或LocalDateTime
。有一个时态类Instant
表示瞬时时间点,而不管地点。为了测量时态差,使用Duration
进行基于时间的计算,使用Period
进行基于日期的计算。yh2wf1be2#
TL;医生
等待10分钟
避免使用
LocalDateTime
LocalDateTime.now();
我无法想象调用
LocalDateTime.now
是正确的事情的场景。该类不能表示时间线上的某个时刻或某个点。它缺少时区或UTC偏移量的上下文。
语法不正确
我的未来日期。设置时间(本地日期时间);
(a)不要不必要地将
Calendar
等糟糕的遗留日期-时间类与它们的替代品(JSR 310中定义的现代 * java. time * 类)混合使用。(b)不能将类的名称(如
LocalDateTime
)作为参数传递。这不是合法的Java语法。(c)在这里发帖之前,试着清理要编译的代码(如果可行的话)。
Duration
等待10分钟直到将来的时间。
在Java 19+中,将
Duration
传递给Thread.sleep
。在早期的Java中,将计数milliseconds传递给
Thread.sleep
。ijxebb2r3#
您试图在当前时间上加上10分钟,但您将该值加到了当前时间的毫秒数上,这是不正确的。