2016-05-24 7 views
-1

java.util.Calendar変数(2016-05-24 00:01:05.780など)があり、その時間の合計秒数を取得したいとします。この例では、結果として65を取得したいと考えています。Java:Calendar変数の秒数を取得

私はmyCalendarVariable.getTimeInMillis()/ 1000を使用しようとしましたが、結果として-2208977011が得られました。

どうすればいいですか?あなたはこの試みることができる

+0

あなたは2016年5月24日01持っていたのであれば、単に明確にするために、:01:05.780をあなたは結果は3665になりたいと思いますか? –

答えて

1

をあなたは

variable.get(Calendar.HOUR_OF_DAY) * 60 * 60 + variable.get(Calendar.MINUTE) * 60 + variable.get(Calendar.SECOND)

を試すことができますCalendar.HOURがために使用されるべきであるのに対し、あなたは、24時間クロックを使用しているときCalendar.HOUR_OF_DAYが使用されていることに注意してください12時間制です。このような状況では、前者を使用します。

1

Calendar calendar = Calendar.getInstance(); 
calendar.setTime(yourdate); 
int minutes = calendar.get(Calendar.MINUTE); 
int seconds = minutes*60 + calendar.get(Calendar.SECOND);; 
1

機能getを使用してください:

myCalendarVariable.get(HOUR_OF_DAY)* 3600 + myCalendarVariable.get(MINUTE) * 60 + myCalendarVariable.get(SECOND) 
1

ないあなたが探していた秒のどの範囲確認をするので、これらのいずれかを試してみてください。

Calendar myCalendarVariable = Calendar.getInstance(); 
int secondsInHour = myCalendarVariable.get((Calendar.MINUTE) * 60) + myCalendarVariable.get(Calendar.SECOND); 
int secondsOfDay = (myCalendarVariable.get(Calendar.HOUR_OF_DAY) * 60 * 60) + secondsInHour; 
0

あなたがLocalDateTimeにあなたの日付を変換することができた場合あなたは1日の秒を直接にすることができます。

CalendarからLocalDateTimeへの変換は、別の形式のデータがある可能性があるため、省略されています。これはあなたのニーズを簡単に修正できるはずです。

LocalDateTime of = LocalDateTime.of(2016, 5, 24, 0, 1, 5, 780000000); 
System.out.println("seconds of day: " + of.getLong(ChronoField.SECOND_OF_DAY)); 

出力

seconds of day: 65 
関連する問題