我最近在Scala工作。我学习了一点Scala。
现在的问题是,我得到的时间戳以毫秒为单位,包含来自.csv文件的日期和时间。我必须逐个检查这些时间戳,如果时间戳是00:00(hh:mm),它应该排除。据我所知,我确实喜欢这个。
timestamp % 86400000(milliseconds for a day) == 0
检查是否正确?
答案 0 :(得分:2)
您可以使用java.util.Calendar
(https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html)执行此操作。
val ts = 123456789
val cal = Calendar.getInstance
cal.setTimeInMillis(ts)
if (cal.get(Calendar.HOUR_OF_DAY) == 0 && cal.get(Calendar.MINUTE) == 0)
println("EXCLUDE")
else
println("INCLUDE")
答案 1 :(得分:1)
如果您正在使用JDK 8,则可以使用新的Java Time API(受Joda-Time影响很大)。
考虑时区的可能方法如下:
import java.time.{Instant, ZoneId}
import java.time.zone.ZoneRulesException
@throws(classOf[ZoneRulesException])
def isAtMidnight(timestamp: Long, zone: String = "UTC"): Boolean = {
val t = Instant.ofEpochMilli(timestamp).atZone(ZoneId.of(zone)).toLocalTime
t.getHour == 0 && t.getMinute == 0
}