标签: timeunit

如何使用TimeUnit枚举将纳秒转换为秒?

如何将值从纳秒转换为秒?

这是代码段:

import java.io.*;
import java.util.concurrent.*; 
..

class Stamper { 

public static void main (String[] args) { 
long start = System.nanoTime(); 
//some try with nested loops 
long end = System.nanoTime(); 
long elapsedTime = end - start;

System.out.println("elapsed: " + elapsedTime + "nano seconds\n");

//convert to seconds 
TimeUnit seconds = new TimeUnit(); 
System.out.println("which is " + seconds.toSeconds(elapsedTime) + " seconds"); 
}}
Run Code Online (Sandbox Code Playgroud)

错误是

Stamper.java:16:  enum types may not be instantiated.
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

java timeunit

141
推荐指数
5
解决办法
24万
查看次数

生成Java中两个给定日期之间的所有日期

我正在尝试获得一系列日期,而我的输入是'from'/'to'结​​构.所以我的意见是:

String date1 = "2014-01-01";
String date2 = "2014-05-01";
Run Code Online (Sandbox Code Playgroud)

我的输出应该是一个Arraylist,所有日期都在date1和date2之间.我已经找到了这个,但我只能找到两个日期之间差异的问题:

SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
String inputString1 = "23 01 1997";
String inputString2 = "27 04 1997";

try {
    Date date1 = myFormat.parse(inputString1);
    Date date2 = myFormat.parse(inputString2);
    long diff = date2.getTime() - date1.getTime();
    System.out.println ("Days: " + TimeUnit.DAYS.convert(diff,TimeUnit.MILLISECONDS));
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

任何提示或建议?所有其他问题都适用于iOS或SQL.

java date simpledateformat timeunit

7
推荐指数
1
解决办法
4793
查看次数

有没有一种方法可以在不损失精度的情况下获得毫秒到天的转换,而无需在 Java 中编写数学公式?

我正在使用 TimeUnit.MILLISECONDS.toDays(ms) 将毫秒时间量转换为天,但阅读 JavaDoc 我注意到它基于.convert()并失去精度

将给定单位的给定持续时间转换为此单位。从更细粒度到更粗粒度的转换会被截断,因此会失去精度。例如,将 999 毫秒转换为秒结果为 0。从粗粒度到细粒度的转换,如果为负,则数值溢出饱和为 Long.MIN_VALUE,如果为正,则为 Long.MAX_VALUE。

真是没想到,我的5分钟(300000ms)变成了0天。直接的解决方案是写这个

double days= (double)ms/1000*60*60*24;
Run Code Online (Sandbox Code Playgroud)

这很糟糕,我认为没有必要,但它有效。有什么建议吗?我可以使用任何其他功能吗?

ps:我不是在等你告诉我我应该将这些数字放入静态变量中,我试图了解什么样的解决方案是一个好的解决方案。提前致谢

java time date-conversion timeunit

7
推荐指数
1
解决办法
665
查看次数

如何从 long+TimeUnit 转换为 Duration?

我正在将一些签名从 迁移f(long dur, TimeUnit timeUnit)f(Duration duration),并希望用后者来实现前者。

在 Java 8 上,我找不到任何 API 可以轻松地将long+转换TU为 a Duration,我唯一的想法就是做一些丑陋的事情,例如:

static Duration convert(long dur, TimeUnit timeUnit) {
  switch (timeUnit) {
    case DAYS:
      return Duration.ofDays(dur);
    case HOURS:
      /* alternative, but (again) I don't have an easy conversion from TimeUnit -> ChronoUnit */
      return Duration.of(dur, ChronoUnit.HOURS);
    case ..... /* and so on */
  }
}
Run Code Online (Sandbox Code Playgroud)

或者我错过了一些API?

java java-8 timeunit java-time chronounit

6
推荐指数
2
解决办法
2631
查看次数

什么Java库对象封装了一个数字和`TimeUnit`?

我想传递一个时间数字,TimeUnit它就在.

long number = some number;
TimeUnit timeUnit = some arbitrary time unit
Run Code Online (Sandbox Code Playgroud)

什么可以Object将Java中的时间和时间单元保持在一起?

java time duration java-8 timeunit

5
推荐指数
2
解决办法
691
查看次数

Java TimeUnit.MILLISECONDS.toDays()给出了错误的结果

我正在尝试计算两天之间的天数差异.出于某种原因,比较01-03-2013和01-04-2013给出结果30,比较01-03-2013和31-03-2013

Calendar cal = Calendar.getInstance();
cal.clear();

cal.set(2013, Calendar.MARCH, 1);
Date start = cal.getTime();

cal.set(2013, Calendar.APRIL, 1);
Date end = cal.getTime();

long days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
System.out.println("!!! Amount of days : " + String.valueOf(days));

>> 30

cal.set(2013, Calendar.MARCH, 1);
start = cal.getTime();

cal.set(2013, Calendar.MARCH, 31);
end = cal.getTime();

days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
System.out.println("!!! Amount of days : " + String.valueOf(days));

>> 30
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

java calendar date timeunit

5
推荐指数
1
解决办法
6116
查看次数

将纳秒转换为毫秒时如何获得十进制结果?

使用TimeUnit,如何将665477纳秒转换为0.665477毫秒?

long t = TimeUnit.MILLISECONDS.convert(665477L, TimeUnit.NANOSECONDS);
Run Code Online (Sandbox Code Playgroud)

这总是给出,0但我需要小数点精度.

java timeunit

5
推荐指数
2
解决办法
8198
查看次数

Android 工作管理器:如何每月将作业排入队列一次

遵循这个问题,我研究了 Android 作业调度,如果我想每月做一次某事,工作管理器似乎是最新的工具。我构建了一个 Worker 类,并在我的活动中使用以下代码片段激活它:

PeriodicWorkRequest myWorkRequest =
                new PeriodicWorkRequest.Builder(MonthlyWorker.class, 20, TimeUnit.MINUTES)
                        .build();
WorkManager.getInstance().enqueueUniquePeriodicWork("my fancy test",ExistingPeriodicWorkPolicy.KEEP, myWorkRequest);
Run Code Online (Sandbox Code Playgroud)

虽然我成功测试了 20 分钟时间段,但存在一个问题:没有可用的月份时间单位,只有天数。由于明显的原因,每 30 天执行一次这项工作是行不通的,因为我需要在每个月的第一天执行该任务。所以我该怎么做?我必须使用不同的 API 吗?谢谢。

我可以做类似的事情if (dayOfMonth==1) do Function,但我认为这破坏了调度程序的目的。

android timeunit periodic-task android-workmanager

5
推荐指数
1
解决办法
2316
查看次数

如何设置DelayQueue的延迟

我刚刚开始使用java进行编码我正在努力设置DelayQueue,

我想拥有它,

DelayQueue queue = new DelayQueue();

If (counter > 0){
queue.offer(Integer, *A custom delay*)
} Else {
queue.offer(Integer, *A different custom delay*)
}
Run Code Online (Sandbox Code Playgroud)

我只是想学习所有的基础知识,而且我已经阅读了API并且似乎无法掌握它.

提前致谢

java queue delay timeunit

4
推荐指数
2
解决办法
5961
查看次数

了解TimeUnit

我接过来一看进入TimeUnittoMillis()方法.

 public long toMillis(long paramLong)
 {
    throw new AbstractMethodError();
 }
Run Code Online (Sandbox Code Playgroud)

toMillis()除了抛出AbstractMethodError异常之外,什么都不做.

那么,toMillis()方法如何将秒,分钟等转换为毫秒?

java timeunit

3
推荐指数
1
解决办法
480
查看次数