Android studio сегодня дата

Классы Date, Calendar, DateFormat

Класс Date предназначен для работы с текущими датой и временем и позволяет отталкиваться от них для решения своих задач. При выходе новых версий Java часть методов класса была перемещена в классы Calendar и DateFormat.

При импорте выбирайте java.util.Date, а не java.sql.Date.

У класса есть два конструктора:

Первый конструктор без параметров инициализирует объект текущей датой и временем. Во втором конструкторе вы можете указать количество миллисекунд, прошедших с полуночи 1 января 1970 года.

  • boolean after(Date date) — если объект класса Date содержит более позднюю дату, чем указано в параметре, то возвращается true
  • boolean before(Date date) — если объект класса Date содержит более раннюю дату, чем указано в параметре, то возвращается true
  • int compareTo(Date date) — сравнивает даты. Возвращает 0, если совпадают, отрицательное значение — если вызывающая дата более ранняя, положительное значение — если вызывающая дата более поздняя, чем в параметре
  • boolean equals(Object object) — если даты совпадают, то возвращается true
  • long getTime() — возвращает количество миллисекунд, прошедших с полуночи 1 января 1970 года
  • void setTime(long milliseconds) — устанавливает время и дату в виде числа миллисекунд, прошедших с полночи 1 января 1970 года.

Если вы посмотрите документацию, то увидите, что существует множество методов для получения или установки отдельных компонентов времени и даты, например, getMinutes()/setMinutes() и др. Все они являются устаревшими и вместо них следует использовать класс Calendar.

Простой пример вывода даты на экран.

С помощью метода getTime() можно отобразить количество миллисекунд, прошедших с 1 января 1970 года. Обновим пример

Calendar

Абстрактный класс Calendar позволяет преобразовать время в миллисекундах в более удобном виде — год, месяц, день, часы, минуты, секунды. Существуют также подклассы, например, GregorianCalendar.

Переменная типа boolean под именем areFieldsSet указывает, были установлены компоненты времени. Переменная fields — это массив целочисленных значений, содержащий компоненты времени. Переменная isSet — массив типа boolean, указывающий, был ли установлен специфический компонент времени. Переменная time (тип long) содержит текущее время объекта. Переменная isTimeSet (тип boolean) указывает, что было установлено текущее время.

У класса много методов. Вкратце опишем часть из них:

  • abstract void add(int field, int value) — добавляет value к компоненту времени или даты, указанному в параметре field (например, Calendar.HOUR). Чтобы отнять, используйте отрицательное значение.
  • boolean after(Object calendar) — возвращает значение true, если вызывающий объект класса Calendar содержит более позднюю дату, чем calendar.
  • boolean before(Object calendar) — возвращает значение true, если вызывающий объект класса Calendar содержит более раннюю дату, чем calendar.
  • final void clear() — обнуляет все компоненты времени в вызывающем объекте.
  • final void clear(int field) — обнуляет компонент, указанный в параметре field
  • int get(int field) — возвращает значение одного компонента, например, Calendar.MINUTE
  • synchronized static Locale[] getAvailableLocales() — возвращает массив объектов класса Locale, содержащий региональные данные
  • synchronized static Calendar getInstance() — возвращает объект класса Calendar для региональных данных и часового пояса по умолчанию. Есть и другие перегруженные версии.
  • final Date getTime() — возвращает объекта класса Date, содержащий время, эквивалентное вызывающему объекту
  • TimeZone getTimeZone() — возвращает часовой пояс
  • final boolean isSet(int field) — возвращает значение true, если указанный компонент времени указан.
  • void set(int field, int value) — устанавливает компоненты даты или времени. Есть перегруженные версии
  • final void setTime(Date date) — устанавливает различные компоненты даты и времени через объект класса Date
  • void setTimeZone(TimeZone timezone) — устанавливает часовой пояс через объект класса TimeZone
Читайте также:  Как сбросить настройки андроид до заводских через компьютер

Также в календаре определены много различных констант: AUGUST и другие месяцы, SATURDAY и другие дни недели, HOUR и т.д.

GregorianCalendar

Класс GregorianCalendar является подклассом Calendar, который представляет обычный Григорианский календарь. Метод getInstance() класса Calendar обычно возвращает объект класса GregorianCalendar, инициированный текущей датой и временем согласно региональным настройкам.

У класса есть два поля AD и BC — до нашей эры и наша эра.

Кроме стандартных методов, которые есть в классе Calendar, у GregorianCalendar есть метод isLeapYear() для проверки високосного года.

Если год високосный, то возвращается true.

Отсчёт месяцев идёт от нуля, поэтому декабрь будет одиннадцатым месяцем. Чтобы не путаться с такими случаями, проще использовать понятные константы:

А получать нужные отрезки времени можно через метод get(). Например, узнать, какой месяц содержится в созданной нами дате можно так:

Изменить состояние объекта можно через метод set(). Например, установим новую дату у нашего объекта.

Можно сдвинуть дату на определённый период с помощью метода add(). Отодвинем дату на два месяца.

Методы getTime() и setTime() работают с объектами Date и полезны для преобразования.

TimeZone

Класс TimeZone позволяет работать с часовыми поясами, смещёнными относительно Гринвича, также известного универсальное глобальное время (UTC). Класс также учитывает летнее время.

SimpleTimeZone

Класс SimpleTimeZone — подкласс класса TimeZone и позволяет работать с часовыми поясами в Григорианском календаре.

Класс DateFormat

Класс DateFormat является абстрактным классом, с помощью которого можно форматировать и анализировать показания даты и времени. метод getDateInstance() возвращает экземпляр класса DateFormat, который может форматировать информацию о дате.

Чаще всего используется метод format(), позволяющий вывести дату в нужном формате.

Класс SimpleDateFormat

Класс SimpleDateFormat является подклассом класса DateFormat и позволяет определять собственные шаблоны форматирования для отображения даты и времени.

Символы форматирования строки

  • A — AM или PM
  • d — день месяца (1-31)
  • D — день в году (1-366)
  • H — часы в формате AM/PM (1-12)
  • K — часы в формате суток (1-24)
  • M — минуты (0-59)
  • S — секунды (0-59)
  • W — неделя в году (1-53)
  • y — год
  • z — часовой пояс

Количество повторений символа определяет способ представления даты. Например, можно указать hh:mm:ss, а можно h:m:s. В первом случае будет отображаться ноль перед цифрой.

Примеры работы с датами и временем можно найти в статье на эту тему.

Источник

Изучите Java для разработки под Android: основы даты и времени

В этом руководстве вы научитесь работать с датами и временем в Java и в приложениях Android. Данные о дате и времени могут быть определены, изменены и сохранены различными способами.

Приложения Android написаны на Java, языке программирования. В Java есть несколько примитивных типов данных для различных типов чисел (целые числа, числа с плавающей запятой и т. Д.), Логических значений и одиночных символов. Java также включает в себя множество классов для хранения, форматирования и изменения данных даты и времени для использования в ваших приложениях Android. В этом руководстве вы узнаете, как определить текущую дату и время, сохранить данные о дате и времени и отобразить их несколькими способами.

Читайте также:  Android стандартное ограничение фоновых процессов что это

Что вам нужно

Технически, вам не нужны никакие инструменты для завершения этого урока, но вам, безусловно, они понадобятся для разработки приложений для Android.

Для разработки приложений Android (или любых других приложений Java) вам необходима среда разработки для написания и создания приложений. Eclipse — это очень популярная среда разработки (IDE) для Java и предпочтительная IDE для разработки под Android. Он свободно доступен для операционных систем Windows, Mac и Linux.

Полные инструкции по установке Eclipse (включая поддерживаемые версии) и Android SDK см. На веб-сайте разработчиков Android .

Что такое дата или время, правда?

Перво-наперво: дата и время — это две части одного и того же фрагмента данных (момент времени). Когда дело доходит до хранения даты и времени на компьютере, может быть полезно вспомнить ваш первый компьютерный класс и вспомнить, что все данные на компьютере состоят из «единиц и нулей». Компьютеры (и устройства Android не являются исключением) на самом деле не имеют ощущения времени, как люди, но вместо этого сохраняют числовое представление текущей даты или времени (всегда тикают вперед, по одной миллисекунде за раз), а затем форматируют эту информацию в различные способы удовлетворить конкретные цели. В конце концов, один момент времени интерпретируется по-разному в зависимости от вашего часового пояса или местоположения, признаете ли вы (или ваш район) переход на летнее время и различные другие факторы.

Добавьте к этому тот факт, что даты и время отображаются по-разному в разных культурах и регионах. Например, в Соединенных Штатах мы часто форматируем наши даты следующим образом: 6 апреля 1981 г. или 04/06/1981, тогда как в Европе день обычно предшествует месяцу, например: 6 апреля 1981 г. или 06/04 / 1981. Аналогичным образом, в некоторых странах существует концепция AM и PM с 12-часовым режимом, тогда как в других просто используются 24-часовые часы.

Компьютеры, включая устройства Android, рассчитывают время и дату как одно число (длинное), которое увеличивается с течением времени. Само число соответствует количеству миллисекунд, прошедших с определенной даты в прошлом. В этом случае момент времени, в который начало отсчитываться «время», это: полночь, 1 января 1970 года. Этот механизм называется временем Unix или временем POSIX .

Что делать разработчику?

Поп-викторина! Какая из следующих строк правильно представляет 4-й месяц (григорианского) календарного года: A, апрель, апрель, апрель, 4 или 04? Ответ? Все они. Работа с датами и временем уже кажется немного сложной, не так ли? На самом деле, мы быстро просмотрели все справочники по Java в нашем офисе (не так уж существенно) и очень мало освещали даты и время каким-либо существенным образом. Но не паникуйте. Просто примите тот факт, что, как разработчик, вам придется приложить немного усилий для достижения двух целей:

1. Ваша внешняя цель: позволить пользователю работать с форматами даты и времени, которые ему наиболее удобны или, по крайней мере, знакомы.
2. Ваша внутренняя цель: сохранить код приложения независимым от формата, чтобы он работал везде без особых хлопот.

Читайте также:  Скин для alreader android

Теперь давайте немного поговорим о каждой из этих целей.

Внешняя цель: быть гибким и использовать стандартные элементы управления

Вы когда-нибудь замечали, что несколько туристических сайтов позволяют пользователю вручную вводить информацию о дате или времени? Вместо этого они полагаются на средства выбора календаря и выпадающие списки с фиксированным днем, месяцем и годом или, как минимум, применяют определенный формат даты (обычно привязанный к вашему языку / стране, который они запрашивают заранее). С точки зрения пользовательского интерфейса, ваши приложения должны учитывать нюансы даты и времени, по крайней мере, до некоторой степени. Тем не менее, вы также должны внимательно рассмотреть методы, с помощью которых пользователь может вводить информацию о дате и времени. Используя стандартные средства выбора даты и времени в своих приложениях для Android, такие как DatePicker и TimePicker, вы эффективно ограничиваете ввод данных, которые пользователи могут вводить, тем, что может быть легко преобразовано в соответствующие структуры даты и времени, без необходимости разбора всех известных форматов (не для упомянуть его опечатки).

Внутренняя цель: сохранить свои даты и время родовыми

С точки зрения внутреннего кода, ваши приложения должны использовать общее представление даты / времени, которое не зависит от этих нюансов.

В Java даты и время хранятся несколькими способами, в зависимости от ваших требований.

Источник

Как я могу получить текущую дату в Android?

Я написал следующий код

Но задает мне параметр, мне нужна текущая дата в строковом формате,

чтобы я мог установить более TextView ,

немного объясните, если вы считаете, что что-то необходимо, я новичок в разработке Android.

Вы можете использовать класс SimpleDateFormat для форматирования даты в желаемом формате.

Просто проверьте эту ссылку, где вы получите идею для вашего примера.

Обновить:

Подробный пример здесь, я бы посоветовал вам пройти этот пример и понять концепцию класса SimpleDateFormat.

Окончательное решение:

Его простой однострочный код для получения текущей даты в этом формате гггг-мм-дд, вы можете использовать свой формат, который вы хотите:

Это не связано с андроидом, поскольку он основан на Java, поэтому вы можете использовать

Сначала вам нужен экземпляр

Работает как шарм и конвертирует в String в качестве бонуса;)

//импортируем класс Date как java.util

В приведенном ниже коде отображаются время и дата

Простая настройка решения Paresh:

Вы можете использовать следующий код, чтобы получить дату в нужном вам формате.

Я даю современный ответ.

java.time и ThreeTenABP

Чтобы получить текущую дату:

Это дает вам объект LocalDate , который вы должны использовать для хранения даты в вашей программе. LocalDate – это дата без времени суток.

Только когда вам нужно отобразить дату для пользователя, отформатируйте ее в строку, подходящую для локали пользователя:

Когда я сегодня запускал этот фрагмент в английской локали США, вывод был:

Если вы хотите, чтобы он был короче, укажите FormatStyle.MEDIUM или даже FormatStyle.SHORT . DateTimeFormatter.ofLocalizedDate использует локаль форматирования по умолчанию, поэтому дело в том, что она выдаст выходные данные, подходящие для этой локали, отличающиеся для разных локалей.

Если у вашего пользователя есть особые требования к формату вывода, используйте строку шаблона формата:

Источник

Оцените статью