如果我的时间单位为秒,且在86400/20=4320次循环后循环持续时间为20秒,则24小时已过去。
long numberOfCyclesToReach24Hours(long cycleDuration, TimeUnit unit) {
// if I knew that unit is of type seconds I could
return TimeUnit.HOURS.toSeconds(24) / cycleDuration
// but if it is of type MILLISECONDS for example I have to
//return TimeUnit.HOURS.toMillis(24) / cycleDuration
}
这个问题是否有一个优雅的解决方案,或者我真的必须切换所有类型的大小写?我知道这不会经常发生,但是如果在未来引入新的TimeUnit
类型,代码必须适应:)
我也在考虑使用时间单位。值
方法,并依赖于返回类型的顺序,通过检查输入单元在其中的位置,知道通过哪个常数(1000L、60L等),我可以自己计算循环数,而无需任何toSeconds
,toMillis
等方法,但这更难看,也真的很奇怪:)
听起来您只是在寻找convert
方法:
将给定单位中的给定时间持续时间转换为此单位。
return unit.convert(24, TimeUnit.HOURS) / cycleDuration;
问题内容: 一个简单的问题,我想将24或12个小时的超时设置为定期(每天一次或两次)来检查一些数据库数据并清除可疑垃圾(如果有)。 我需要注意由于设置了巨大的超时而引起的任何可能的问题或性能问题吗?我不介意毫秒数不是精确的12-24小时,也不介意在服务器崩溃时丢失此超时,因为无论如何我将在服务器启动时运行相同的垃圾收集器。 结论: 我没有使用本机OS cron运行单独的脚本,因为我需要访问此脚本中
问题内容: 我有一个将a解析为: 当我解析这个: 结果将是,当使用时: 8月29日 2011 00:44:00 当然,这应该是: 8月29日 2011 12:44:00 当我解析这个: 然后结果如预期的那样: 8月29日 2011 13:44:00 我怎样才能解决这个问题? 问题答案: 使用代替小时模式:
问题内容: 我想知道安排代码的最佳方法。我有一个代码,可以生成报告,并每隔24小时将邮件发送给一组人。它是一个基于控制台的Java应用程序。我想知道最好的安排时间的方法。有时我可能需要将其更改为12小时间隔。但是,应用程序在两次间隔之间不会执行任何其他任务。 问题答案: 这里有几种方法,从最简单到最全面: : 这种方法很简单,可以做24小时的工作和睡眠。实际上,这有点复杂,因为报告生成需要一些时间
问题内容: 在我的应用中,我需要不时格式化。我必须使用什么方法? 例如,时间如。如何在Java中将时间转换为24小时? 问题答案: 试试这个: 产生: 参见:http : //download.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html
问题内容: 我有以下24小时工作时间: 如何将其转换为12小时? 我想智能转换到与到。我可以使用自己的逻辑来执行操作,但是有没有办法在没有…的情况下智能地执行此操作? 问题答案:
问题内容: 当前返回: ‘25:59:59’ 我希望它返回: ‘01:59:59’ 我知道一个简单的问题,但我不知道如何告诉MySQL这样做而不是25小时后返回。有任何想法吗? 问题答案: 不知道这是否是最好的解决方案,但似乎可行: