Java:获取Calendar变量的秒数

时间:2016-05-24 13:35:25

标签: java calendar

我有一个java.util.Calendar变量(如2016-05-24 00:01:05.780),我想得到总时间的秒数。在这个例子中,我希望得到65作为结果。

我尝试使用myCalendarVariable.getTimeInMillis()/ 1000但结果却得到了-2208977011。

我该怎么做?

5 个答案:

答案 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,则可以直接转换为日期。

CalendarLocalDateTime的转换已被省略,因为您可能拥有其他格式的数据。这应该很容易根据您的需要进行修改。

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