我有一个java.util.Calendar变量(如2016-05-24 00:01:05.780),我想得到总时间的秒数。在这个例子中,我希望得到65作为结果。
我尝试使用myCalendarVariable.getTimeInMillis()/ 1000但结果却得到了-2208977011。
我该怎么做?
答案 0 :(得分:1)
你可以试试这个:
Calendar calendar = Calendar.getInstance();
calendar.setTime(yourdate);
int minutes = calendar.get(Calendar.MINUTE);
int seconds = minutes*60 + calendar.get(Calendar.SECOND);;
答案 1 :(得分:1)
你可以尝试
variable.get(Calendar.HOUR_OF_DAY) * 60 * 60 + variable.get(Calendar.MINUTE) * 60 + variable.get(Calendar.SECOND)
请注意,当您使用24小时制时使用Calendar.HOUR_OF_DAY
,而{12}时钟应使用Calendar.HOUR
。在这种情况下,你想使用前者。
答案 2 :(得分:1)
尝试使用get函数:
myCalendarVariable.get(HOUR_OF_DAY)* 3600 + myCalendarVariable.get(MINUTE) * 60 + myCalendarVariable.get(SECOND)
答案 3 :(得分: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;
答案 4 :(得分:0)
如果您可以将日期转换为LocalDateTime
,则可以直接转换为日期。
从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