2016-09-12 5 views
0

Я только начал заниматься классом компьютерной науки неделю назад, и я нашел этот код, чтобы получить дату и время. Но я не совсем понимаю, что все это значит. Если кто-нибудь сможет прояснить это, это будет потрясающе! :)Как работает этот фрагмент даты и времени?

long yourmilliseconds = System.currentTimeMillis(); 
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");  
Date resultdate = new Date(yourmilliseconds); 
System.out.print("Date: "); 
System.out.println(sdf.format(resultdate)); 
+2

http://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html –

ответ

1

long yourmilliseconds = System.currentTimeMillis();

получить число миллисекунд от системы

Date resultdate = new Date(yourmilliseconds);

Создает дату из него. Эти две линии могут быть изменены на

Date resultdate = new Date();

Как даты в JDK1.7 и предыдущий, не имеет какого-либо внутреннее форматирование класса форматирования используется

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");

Это картина будет печать в

System.out.println(sdf.format(resultdate));

Теперь мы Ĉ весь метод форматирования и распечатать его.

+0

Хорошо, спасибо огромное! –

0

Scary Wombat проделал хорошую работу, объясняя вам отдельные шаги, но для этого есть немного больше.

Прежде всего, обучение программированию - об опыте самостоятельно. Итак, ваш первый шаг к этому можно было бы: взять этот исходный код и вместо вставки его в вопрос SO ... вставить его в метод «public static void main»; в публичном классе; скомпилировать его, запустить его и посмотреть, что произойдет. И начните играть с ним.

Если у вас возникли вопросы, следующим шагом будет поиск javadoc - вы видите; весь ваш код имеет дело с стандарт классы; и все они хорошо documented.

Итак, урок на сегодня: просьба здесь в порядке, но убедитесь, что вы действительно попробуйте, чтобы самим изобразить такие вещи! Не только потому, что политика этого сайта говорит так, а потому, что это дает вам самые лучшие результаты обучения!

0

java.time

Этот код:

  • Захватывает текущий момент (дата-время)
  • Формирует строку в текстуально представлять этот момент.

Обратите внимание, что это две разные концепции. Объектом с датой является не a Строка. Объект даты создает a String для представления его значения. Начинающие программисты часто сталкиваются с двумя причинами, вызывающими много путаницы и разочарования.

К сожалению, этот фрагмент кода использует некоторые старые устаревшие классы времени, которые теперь вытесняются классами java.time. Старые классы оказались плохо спроектированными, запутанными и неприятными.

Современный способ захвата текущего момента прост. Класс Instant представляет собой момент на временной шкале в UTC с разрешением до наносекунд.

Instant instant = Instant.now(); 

Чтобы создать строку, представляющую этот момент в стандартном формате ISO 8601, просто вызовите toString.

String output = instant.toString(); 

2016-09-12T05: 36: 55Z

Adjust в конкретной временной зоне (ZoneId), чтобы увидеть тот же самый момент, через призму времени стены-часы этого региона.

ZoneId z = ZoneId.of("America/Montreal"); 
ZonedDateTime zdt = instant.atZone(z); 

Опять же, чтобы сгенерировать строку, представляющую этот момент в стандартном формате ISO 8601, просто вызовите toString. Фактически, ZonedDateTime расширяет стандарт, мудро добавляя имя часового пояса в квадратных скобках.

String output = zdt.toString(); 

2016-09-12T01: 36: 55-04: 00 [Америка/Монреаль]

Для создания строк в других форматах, поиск переполнения стека для класса java.time DateTimeFormatter ,

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