2013-08-11 2 views
0

ВведениеКак получить мое текущее время

Я хотел бы получить текущее время моего компьютера в формате HH: MM: SS. Хотя я пробовал много разных методов, все они дают мне тот же результат.

Код

long milliseconds = System.currentTimeMillis(); 
int seconds = (int) (milliseconds/1000) % 60 ; 
int minutes = (int) ((milliseconds/(1000*60)) % 60); 
int hours = (int) ((milliseconds/(1000*60*60)) % 24); 

System.out.println(hours +":" + minutes+ ":"+ seconds); 

Результат

12:42:34 но текущее время моего компьютера является 8:42:34

То, что я хочу

Но время отличается от моего компьютера Текущее время. Зачем?

+0

Используйте 'SimpleDateFormat'. –

+0

Head First Java - БОЛЬШАЯ стартовая книга для тех, кто имеет некоторый фон OO, но хочет изучить основы Java. Он имеет отличную главу о форматировании для нескольких входов и включает в себя множество вызовов для даты и времени, а также использование даты и календаря. –

+0

Кроме того, мне кажется, что ваш выход обусловлен часовым поясом. Большинство звонков в миллисекундах основано на Восточном часовом поясе –

ответ

2

Попробуйте это:

DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); 
Calendar cal = Calendar.getInstance(); 
System.out.println(dateFormat.format(cal.getTime())); 
+1

Спасибо, он работает сейчас .. – Jack

2

Метод currentTimeMillis возвращает время в UTC. Используйте экземпляр SimpleDateFormat, чтобы отформатировать время в вашем текущем часовом поясе.

2

Попробуйте этот код

DateFormat dateFormat = new SimpleDateFormat("hh:mm:ss"); 
Date date = new Date(); 
System.out.println(dateFormat.format(date)); 

формат использования hh:mm:ss для получения час в AM/PM (1-12).
HH:mm:ss формат для получения часа в формате 24 часа.
Для получения более подробной информации SimpleDateFormat

+0

Есть ли какое-либо доверие к добавлению некоторых вызовов String.format? Как% td для дня или% tB в течение месяца? Кроме того, использование <операнда для нескольких форматов для одного входа? Я спрашиваю, потому что это обсуждалось в книге основ, которую я читал. –

1

Постарайся Дис

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
     //get current date time with Date() 
     Date date = new Date(); 
     System.out.println(dateFormat.format(date)); 

     //get current date time with Calendar() 
     Calendar cal = Calendar.getInstance(); 
     System.out.println(dateFormat.format(cal.getTime())); 
+0

Я читал, что дата в основном прекращена календарем, это был ваш опыт? Или это вопрос, который подходит для законопроекта? Я спрашиваю, потому что книга, которую я закончила, кажется, очень приветствует Календарь. –

+1

@JeremyJohnson 'Date' - это просто обертка вокруг отметки времени UNIX. «Календарь» хранит информацию «TimeZone» и многое другое. Какой бы ни был подходящий счет. –

+0

@BoristheSpider Спасибо за разъяснение этого для меня. Большое спасибо –

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