草庐IT

java - 在 Java 中,获取系统时间最快的方法是什么?

我正在开发一个经常使用系统时间的系统,因为Delayed接口(interface)。从系统获取时间最快的方法是什么?目前我每次需要获取时间时都在使用Calendar.getInstance().getTimeInMillis(),但我不知道是否有更快的方法。 最佳答案 System.currentTimeMillis()“以毫秒为单位返回当前时间”。使用它来获取实际的系统时间。System.nanoTime().“返回的值表示从某个固定但任意的原始时间开始的纳秒数”在测量时间流逝/事件时使用它。

java - Joda Time - 两个日期之间的所有星期一

我第一次在Spring3.0项目中使用Jodatimeapi。现在我有一个开始和结束日期,我想获取这两个日期之间所有星期一的日期。我怎样才能做到这一点?我不知道从哪里开始,请有人指教。我看了这篇帖子JodaTime:Howtogetdatesofweekdaysonsomedateinterval?它提供了某种指导,但由于对joda的经验不足,它仍然有些模糊。 最佳答案 LocalDatestartDate=newLocalDate(2011,11,8);LocalDateendDate=newLocalDate(2012,5,1)

java - Java 中基于时间的逻辑单元测试

我有一个方法可以根据当前日期对从数据库中获取的数据实现不同的逻辑。我想通过让单元测试创​​建对象、将它们保存在数据库中并调用测试方法来测试它。但是,为了获得可预测的结果,我每次都需要更改系统日期,但我不知道如何在Java中执行此操作。建议? 最佳答案 您可以使用当前日期生成预期结果。或者您将系统编写为使用测试时提供的日期/时间(而不是时钟)这样时间始终是测试所期望的时间。我用类似的东西interfaceTimeSource{longcurrentTimeMS();//actuallyIhavecurrentTimeNSvoidcur

java - 为什么第一次调用构造函数花费的时间比其他调用多 10 倍?

classtestx{publictestx(){longstartTime=System.nanoTime();System.out.println((System.nanoTime()-startTime));}publicstaticvoidmain(Stringargs[]){newtestx();newtestx();newtestx();}}我总是得到类似于此7806660517的结果。为什么第一次调用比其他调用花费的时间多10倍? 最佳答案 因为此时JVM第一次加载了一堆类。一旦第一个System.nanoTime()

java - 自动人类可读时间间隔

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我想以人类可读的格式表达一些时间间隔。我一直在寻找一个能够自动选择正确单位大小的图书馆。间隔从几毫秒到几周不等。有点像0.2s2:004天...我知道我可以手动检查参数的大小然后转换它,但在重新发明轮子之前我想问一下是否有一个(标准)库来实现这一点。TimeUnit进行转换,但不知道参数的大小一个Joda-TimeDuration完全代表了我所需要的,但我没有找到太多

java - 如何将当前时间与时间范围进行比较?

我有两个字符串变量-time1和time2。两者都包含格式为HH:MM的值。我如何检查:如果当前时间在time1和time2?time1将在最近的时间发生小时?更新。我已经实现了以下将time1转换为Date格式。但它使用折旧的方法:DateclTime1=newDate();SimpleDateFormattimeParser=newSimpleDateFormat("HH:mm",Locale.US);try{clTime1=timeParser.parse(time1);}catch(ParseExceptione){}Calendarnow=Calendar.getInstan

java - Java 中的 CPU 执行时间

我想计算我的函数在Java中执行需要多少CPU时间。目前我正在做如下。longstartTime=System.currentTimeMillis();myfunction();longendTime=System.currentTimeMillis();longsearchTime=endTime-startTime;但我发现,对于相同的I/P,我会根据系统负载得到不同的时间。那么,如何获得我的函数执行所花费的准确CPU时间。 最佳答案 System.currentTimeMillis()只会测量wall-clocktime,从不

java - 如何处理 java.time 中的完整周期?

Period在java.time中上课仅处理面向日期的部分:年、月、日。关于时间部分:小时、分钟、秒?我们如何解析和生成ISO8601中定义的完整周期的字符串表示形式,PnYnMnDTnHnMnS?例如,一天半:P1DT12H。一学年为九个月,P9M。每年我都会有两周零三天的假期,P17D。客户入住酒店房间2天17个半小时,P2DT17H30M。Period在Joda-Time中上课处理全期。为什么不在java.time中?还有其他机制吗? 最佳答案 在JavaSE8中,如果需要,应用程序有责任创建一个链接Period和Durati

java - for 循环与 if-else 语句中的代码

我试图解决这个问题:https://leetcode.com/problems/longest-substring-without-repeating-characters/以下代码在44毫秒内通过了所有测试。for(inti=0;i=first){first=mp.get(s.charAt(i))+1;}mp.put(s.charAt(i),i);//max=Math.max(max,i-first+1);}max=Math.max(max,i-first+1);}但下面的代码只用了20毫秒就通过了所有测试。for(inti=0;i=first){first=mp.get(s.cha

java.time.ZonedDateTime.parse 和 iso8601?

为什么JDK8DateTime库似乎无法解析有效的iso8601日期时间字符串?它在表示为“+01”而不是“+01:00”的时区偏移量上窒息这个有效:java.time.ZonedDateTime.parse("2015-08-18T00:00+01:00")这会抛出一个解析异常:java.time.ZonedDateTime.parse("2015-08-18T00:00+01")来自iso8601维基百科页面:TheoffsetfromUTCisappendedtothetimeinthesamewaythat'Z'wasabove,intheform±[hh]:[mm],±[hh