有没有比这更简单的方法来开始当前时间?

Teo*_*ing 8 java groovy datetime calendar

我基本上想要获得零或开始时间的一天.

def today = Calendar.instance
today.set(Calendar.HOUR_OF_DAY, 0)
today.set(Calendar.MINUTE, 0)
today.set(Calendar.SECOND, 0)
println today // Mon Mar 15 00:00:00 SGT 2010
Run Code Online (Sandbox Code Playgroud)

Mik*_*uka 8

并不比其他解决方案简单,但线路更少:

def now = new GregorianCalendar()
def today = new GregorianCalendar(now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH))
println today.getTime()
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 5

您可以使用该clearTime()功能Calendar在Groovy:

def calendar = Calendar.instance
calendar.with {
  clearTime()
  println time
}
Run Code Online (Sandbox Code Playgroud)

有一个方便的方法可以清除a java.util.Date和/或的时间部分java.util.Calendar.
有许多用例,比较日历或日期的月/日/年部分是有意义的.从本质上讲,它将在日历上执行以下操作:

void clearTime() {
    clear(Calendar.HOUR_OF_DAY)
    clear(Calendar.HOUR)
    clear(Calendar.MINUTE)
    clear(Calendar.SECOND)
    clear(Calendar.MILLISECOND) 
 }
Run Code Online (Sandbox Code Playgroud)