从时间戳中删除分钟

时间:2018-03-24 03:50:52

标签: scala

我正在使用

val unix_startTime = startTime.getTime - (((startTime.getTime / (1000 * 60)) % 60) * 60000)

循环时间戳示例

  

2018-01-08 19:16:21到2018-01-08 19:00:21

     

2018-01-08 19:56:21至2018-01-08 19:00:21

是否有任何内置功能可以实现这一目标?

3 个答案:

答案 0 :(得分:1)

您可以使用SimpleDateFormat

val df = new SimpleDateFormat("yyyy-MM-dd HH:00:ss")
df.format(new Date)

答案 1 :(得分:0)

您可以使用 java.time

import java.time._
import java.time.format._
val startTime = "2018-01-08 19:16:21"
val formatterFrom = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val formatterTo = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:00:ss")
val unix_startTime = LocalDateTime.parse(startTime, formatterFrom).format(formatterTo)

答案 2 :(得分:0)

如果可能的话,使用java.time API,其中类是不可变的和线程安全的。要将分钟归零,您可以使用LocalDateTime方法plusMinutes,如下例所示:

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

val date = "2018-01-08 19:16:21"

val localDate = LocalDateTime.parse(
  date, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
)
// localDate: java.time.LocalDateTime = 2018-01-08T19:16:21

localDate.plusMinutes(-localDate.getMinute)
// res1: java.time.LocalDateTime = 2018-01-08T19:00:21