Java предоставляет некоторые классы связанные с временем и каледарем (Calendar), ниже перечислены эти классы:
Класс
Описание
java.util.Date
Класс, представляющий дату и время. К сожалению большинство методов этого класса устарели, рекомендуется не использовать эти методы, при этом класс Date все еще широко используется.
java.util.concurrent.TimeUnit
TimeUnit это Enum описывающий единицу даты и времени.
java.sql.Date
Класс описывающий дату. Информация про время вырезано. Этот класс обычно используется в JDBC.
java.sql.Time
Класс описывающий время (час, минута, секунда, милисекунда), и не содержит информацию о времени.Этот класс обычно используется в JDBC.
java.sql.Timestamp
Класс описывающий дату и время. Этот класс обычно используется в JDBC.
java.util.Calendar
Класс описывающий календарь. Имеет арифметические методы о времени, например добавить день, убавить день...
java.util.GregorianCalendar
Это прямой подкласс java.util.Calendar, описывающий дату по Григорианскому календарю, календарь широко использующийся в наши дни. Он имеет все методы из java.util.Calendar, чтобы применить арифметику над датой и временем.
java.util.TimeZone
TimeZone это класс описывающий часовой пояс, полезен когда вы работаете с Календарем на часовом поясе
java.text.SimpleDateFormat
Этот класс помогает вам сменить String имеющий формат даты на вид Date и обратно.
2- System.currentTimeMillis()
currentTimeMillis() это статистический метод класса System. Он возвращает количество времени в милисекундах от даты 1-1-1970 до настоящего времени.
java - джава - учиться java - учебник java -
системы текущего времени
- примеры java - java-программы
System.currentTimeMillis() обычно используется для мерки количества времени выполнения определенного действия способом вызова этого метода перед тем как начать работать, и после завершения работы.
java - джава - учиться java - учебник java -
система текущего
- примеры java - java-программы
JobTimeDemo.java
Результаты запуска примера:
java - джава - учиться java - учебник java -
Задание времени демо
- примеры java - java-программы
3- TimeUnit
TimeUnit это Enum, был внесен начиная с Java5. Имеет некоторые методы конвертации между единицами времени, и дествительно полезны в некоторых ситуациях.
Некоторые методы TimeUnit
Пример:
TimeUnitConvertDemo.java
Результаты запуска примера:
java - джава - учиться java - учебник java -
преобразовать единицы времени
- примеры java - java-программы
4- java.util.Date
java.util.Date это один из первых классов описывающих даты в Java. К сожалению, почти все его методы устарели, вместо них используют метод java.util.Calendar. НО вы все еще можете использовать java.util.Date để для описания даты..
Только 2 конструктора (constructor) могут быть использованы:
java - джава - учиться java - учебник java -
Дата
- примеры java - java-программы
DateDemo.java
Результаты запуска примера:
java - джава - учиться java - учебник java -
Дата демо
- примеры java - java-программы
5- Date, Time, Timestamp (java.sql)
java.sql имеет 3 класса связанные с датой и временем:
java.sql.Date
java.sql.Time
java.sql.Timestamp
Конкретно:
java.sql.Date соответствует с SQL DATE, значит он хранит год, месяц, день и пропускает часы, минуты, секунды, милисекунды. Так же, java.sql.Date не содержит информацию про часовой пояс.
java.sql.Time соответствует с SQL TIME и содержит только информацию про часы, минуты, милисекунды.
java.sql.Timestamp соответствует с SQL TIMESTAMP, он точный до наносекунды (заметьте, java.util.Date поддерживает только до милисекунд!) с кастомизированной точностью.
Классы выше использованные в PreparedStatement в JDBC API, например методы setDate, setTime, setTimestamp. Или могут быть получены из ResultSet.
6- java.util.Calendar
Gregorian Calendar (Григорианский календарь): Это Солнечный календарь, или еще называется Христианский календарь, является мировым календарем. Он используется больше всего и назван в честь папой римским Григорием XIII, который ввел календарь в 1582 году.
Buddhist Calendar (Буддийский календарь): Это буддийский календарь, обычно используется в Юго Восточных странах, как Таиланд, Лаос, Камбоджа, и Шри Ланка. В настоящее время, этот календарь используется официально на будийских фестивалях. И нет страны, которая использует этот календарь официально, эти страны перешли на использование Григорианского календаря. Вы можете посмотреть дополнительную информацию здесь:
Japanese Imperial Calendar (Японский календарь): Это традиционный календарь Японии, в настоящее время Япония перешла на использование Григорианского календаря, при этом, традиционный календарь все еще используется неофициально.
Calendar это класс симулирующий систему Календаря.
java - джава - учиться java - учебник java -
Каландр
- примеры java - java-программы
Calendar имеет некоторые подклассы:
GregorianCalendar
JapaneseImperialCalendar
BuddhistCalendar
Calendar это абстрактный календарь. Значит вы не можете создать его из конструктора (Constructor). При этом есть 2 статистических метода создать объект Calendar.
Пример:
Когда вы используете Calendar.getInstance(TimeZone,Locale) то получаете возвратом один из вышеупомянутых классов. В большинстве возвращают GregorianCalendar.
Вызов Calendar.getInstance() возвращает объект Calendar с параметром TimeZone соотвествующим вашему компьютеру и Locale по умолчанию.
Посмотрите на код класса Calendar (JDK7):
Некоторые важные методы:
Method get(int)
Return
get(Calendar.DAY_OF_WEEK)
1 (Calendar.SUNDAY) to 7 (Calendar.SATURDAY).
get(Calendar.YEAR)
year
get(Calendar.MONTH)
0 (Calendar.JANUARY) to 11 (Calendar.DECEMBER).
get(Calendar.DAY_OF_MONTH)
1 to 31
get(Calendar.DATE)
1 to 31
get(Calendar.HOUR_OF_DAY)
0 to 23
get(Calendar.MINUTE)
0 to 59
get(Calendar.SECOND)
0 to 59
get(Calendar.MILLISECOND)
0 to 999
get(Calendar.HOUR)
0 to 11, to be used together with Calendar.AM_PM.
get(Calendar.AM_PM)
0 (Calendar.AM) or 1 (Calendar.PM).
get(Calendar.DAY_OF_WEEK_IN_MONTH)
DAY_OF_MONTH 1 through 7 always correspond to DAY_OF_WEEK_IN_MONTH 1;
8 through 14 correspond to DAY_OF_WEEK_IN_MONTH 2, and so on.
get(Calendar.DAY_OF_YEAR)
1 to 366
get(Calendar.ZONE_OFFSET)
GMT offset value of the time zone.
get(Calendar.ERA)
Indicate AD (GregorianCalendar.AD), BC (GregorianCalendar.BC).
пример примера javajava dateformatкак получить текущее время в javajava date сейчасjava date classформат java datetimejava time classдата-тип данных в javaпример java timeУчебник java.timejava 7 разПример java.sql.timejava date class