Java:获取日历变量的秒数

Java:获取日历变量的秒数,java,calendar,Java,Calendar,我有一个java.util.Calendar变量,比如2016-05-24 00:01:05.780,我想得到时间的总秒数。在本例中,我希望得到65作为结果 我试图使用myCalendarVariable.getTimeInMillis/1000,但结果得到了-2208977011 我该怎么做呢?你可以试试这个: Calendar calendar = Calendar.getInstance(); calendar.setTime(yourdate); int minutes = calend

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

我试图使用myCalendarVariable.getTimeInMillis/1000,但结果得到了-2208977011

我该怎么做呢?

你可以试试这个:

Calendar calendar = Calendar.getInstance();
calendar.setTime(yourdate);
int minutes = calendar.get(Calendar.MINUTE);
int seconds = minutes*60 + calendar.get(Calendar.SECOND);;
你可以试试

variable.getCalendar.HOUR\u OF_DAY*60*60+variable.getCalendar.MINUTE*60+variable.getCalendar.SECOND


请注意,当您使用24小时制时钟时,应使用Calendar.HOUR OF_DAY,而Calendar.HOUR应用于12小时制时钟。在这种情况下,您需要使用前者。

尝试使用get函数:

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

不确定要查找的秒数范围,因此请尝试以下选项之一:

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;

如果可以将日期转换为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

所以我想说清楚,如果你有2016-05-2401:01:05.780,你希望结果是3665?