我有一个日历对象,它被设置为2年前。我想通过添加小时来更新这个日历对象,接近当前时间,但它不应该超过当前时间。
如果需要,更新也应该以天为单位向后传播。如果原始时间为624,2015 00:20:50:200
,而当前时间为627,2015 00:15:20:100
,则需要获取626,2016 23:20:200
。
Java8中有没有提供这种功能的本地方法?
Java.util.Calendar
类现在被Java.Time框架所取代,Java8和更高版本中内置了这个框架。这些类取代了旧的麻烦的日期时间类,如java.util.date
、.calendar
、&java.text.SimpleDateFormat
。
要了解更多信息,请参阅Oracle教程。并搜索堆栈溢出的许多例子和解释。
大部分Java.time功能在ThreeTen-Backport中被回移植到Java6和7,并在ThreetenABP中进一步适应Android。
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime pastZdt = ZonedDateTime.of( 2015 , Month.June, 24 , 11 , 20 , 52 , 200_000_000 , zoneId );
ZonedDateTime nowZdt = ZonedDateTime.now( zoneId );
LocalTime pastTOD = pastZdt.toLocalTime();
LocalTime nowTOD = nowZdt.toLocalTime();
ZonedDateTime target = null;
if( pastTOD.isAfter( nowTOD ) ) { // Use yesterday’s date.
target = ZonedDateTime.of( nowZdt.toLocalDate().minusDays( 1 ) , pastTOD , zoneId );
} else { // Else, the past time-of-day is same or ealier than today’s time-of-day, so use today's date.
target = ZonedDateTime.of( nowZdt.toLocalDate() , pastTOD , zoneId );
}
注意:由于夏令时(DST)等异常现象,一天中的特定时间在此特定日期可能无效。一定要阅读类文档,以理解调整以修复这种困境的结果行为。这种行为可能满足你的需求,也可能不满足你的需求(没有完美的补救办法是可能的)。
警告:上面的代码从未运行过。使用风险自负。如果发现缺陷,请编辑以修复。
我正试图使用
问题内容: 我希望Selenium通过箭头键浏览菜单-首先单击顶部菜单项,然后按“ DOWN”,“ DOWN”,… 问题是您必须始终提供特定的元素才能将“ DOWN”发送到。 有什么方法可以获取当前元素? 我试过了: 但它表示该表达式无法识别或未返回正确的对象。 我希望我错过了一些愚蠢的把戏。 问题答案: 没有比访问更直接的方法了
问题内容: 我希望Selenium通过箭头键浏览菜单-首先单击顶部菜单项,然后按“ DOWN”,“ DOWN”,… 问题是您必须始终提供特定的元素才能将“ DOWN”发送到。 有什么方法可以获取当前元素? 我试过了: 但它表示该表达式无法识别或未返回正确的对象。 我希望我缺少一些愚蠢的把戏。 问题答案: 不知道比访问更直接的方法 如何测试Selenium RC中关注的元素?
问题内容: 我有两个叫和的表。我想创建一个触发器,更新列上在每个新的插入表的表。 表客户:customer_id,名称,last_sale,… 表销售额:sale_id,customer_id,日期,… 我已经开始写作,但我不知道该怎么做。 有人可以帮我吗? 问题答案: 然后 是即将在销售表中插入的行。(对于更新行,将取决于该行在更新之后的外观,以及该行在更新之前的外观)。