2016-03-29 2 views
0

Чтобы получить год и месяц с заданной отметки времени, я использовал этот код. Но для этого есть неправильный ответ.Предоставление неверных данных при использовании java.util.Calendar для извлечения года и месяца из timestamp

long timestamp = Long.parseLong("1459239223"); 
    Calendar cal = Calendar.getInstance(); 
    cal.setTimeInMillis(timestamp); 
    System.out.println(cal.get(Calendar.YEAR)); 

Но при использовании this это даст ответ на соединение, как это должно быть. Любая идея, почему это происходит.

Примечание: Java 7 OpenJDK используется, и аналогичный вопрос задан около Getting “unixtime” in Java.

ответ

4

Адрес, на который вы ссылались для онлайн-преобразования, является правильным. Вы настроили время в секундах для экземпляра календаря i.e умножить на 1000, чтобы преобразовать время в миллисекундах в секунды.

long timestamp = Long.parseLong("1459239223000"); 
Calendar cal = Calendar.getInstance(); 
cal.setTimeInMillis(timestamp); 
System.out.println(cal.get(Calendar.YEAR)); 

Поэтому, чтобы ответить на ваш вопрос: Unix времени определяется как число секунд прошло с момента UTC 1 января 1970 года в полночь.

+0

Благодаря этой работы и принял ответ также спасибо за информацию – GPrathap

0

Вы можете сделать, как этот путь также -

SimpleDateFormat sdf = new SimpleDateFormat("yyyy");  
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));  
System.out.println(calendar.getWeekYear()); 

 Смежные вопросы

  • Нет связанных вопросов^_^