2016-09-18 73 views
-1

設置一個小時,日曆我在斯卡拉以下代碼:如何在斯卡拉

import java.util.Calendar 
var calendar = Calendar.getInstance(); 
var lastTimeProcessed = calendar.set(Calendar.HOUR_OF_DAY, 0) 

在火花外殼,創造lastTimeProcessed後,會出現類似這樣的變量爲單位,但我想初始化爲00 :00。

這是控制檯結果:

lastTimeProcessed: Unit =() 

我在做什麼錯?

+0

你將無法得到一個格式化值「00:00」使用日曆對象的一個​​方法調用。我們可以猜到你想要什麼,但是你應該用java.util.Calendar和java.text.SimpleDateFormat搜索例子,然後更清楚地陳述問題。你真的只想把日期格式化爲一個字符串?這可能不是用於過濾數據的最有用的表單(請參閱下面的註釋)。 – Core

回答

1

組日曆返回void之後,但它確實改變HOUR_OF_DAY或分鐘在此基礎上運行值:

scala> import java.util.Calendar 
import java.util.Calendar 

scala> var calendar = Calendar.getInstance(); 
calendar: java.util.Calendar = java.util.GregorianCalendar[time=1474194792722,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Manila",offset=28800000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=39,WEEK_OF_MONTH=4,DAY_OF_MONTH=18,DAY_OF_YEAR=262,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=6,HOUR_OF_DAY=18,MINUTE=33,SECOND=12,MILLISECOND=722,ZONE_OFFSET=28800000,DST_OFFSET=0] 

scala> var lastTimeProcessed = calendar.set(Calendar.HOUR_OF_DAY, 0) 
lastTimeProcessed: Unit =() 

scala> calendar 
res0: java.util.Calendar = java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Manila",offset=28800000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=39,WEEK_OF_MONTH=4,DAY_OF_MONTH=18,DAY_OF_YEAR=262,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=6,HOUR_OF_DAY=0,MINUTE=33,SECOND=12,MILLISECOND=722,ZONE_OFFSET=28800000,DST_OFFSET=0] 

scala> calendar.set(Calendar.MINUTE, 0) 

scala> calendar 
res2: java.util.Calendar = java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Manila",offset=28800000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=39,WEEK_OF_MONTH=4,DAY_OF_MONTH=18,DAY_OF_YEAR=262,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=6,HOUR_OF_DAY=0,MINUTE=0,SECOND=12,MILLISECOND=722,ZONE_OFFSET=28800000,DST_OFFSET=0] 

一個不請自來的建議,使用喬達時間庫。

1

set是變異的實例的狀態,並返回作爲Unit輸出類型。

calendar的狀態已更改。現在打印calendar以查看新的變異狀態。

calendar.getTime 

會告訴你的時間設置HOUR_OF_DAY

scala> calendar.get(Calendar.HOUR_OF_DAY) 
res12: Int = 0 
+0

是的,你是對的。但是如何從00:00獲得一個變量呢?這僅用於過濾來自例如00:00至02:00的數據 – Thabby07