Spec-Zone.ru › Dart 1

dart:core

Класс DateTime

Момент времени, такой как 20 июля 1969 года, 20:18 по Гринвичу.

Создайте объект DateTime, используя один из конструкторов или анализируя строку в корректном формате, соответствующем подмножеству ISO 8601. Обратите внимание, что часы задаются в диапазоне от 0 до 23, как в 24-часовом формате. Например:

DateTime now = new DateTime.now();
DateTime berlinWallFell = new DateTime(1989, 11, 9);
DateTime moonLanding = DateTime.parse("1969-07-20 20:18:00");  // 8:18pm

Объект DateTime привязан либо к часовому поясу UTC, либо к местному часовому поясу текущего компьютера при его создании.

После создания значение и часовой пояс объекта DateTime изменить нельзя.

Вы можете использовать свойства для получения отдельных единиц объекта DateTime.

assert(berlinWallFell.month == 11);
assert(moonLanding.hour == 20);

Для удобства и читабельности класс DateTime предоставляет константы для каждого имени дня и месяца, например, AUGUST и FRIDAY. Вы можете использовать эти константы для повышения читабельности кода:

DateTime berlinWallFell = new DateTime(1989, DateTime.NOVEMBER, 9);
assert(berlinWallFell.weekday == DateTime.THURSDAY);

Значения дня и месяца начинаются с 1, а неделя начинается с понедельника. То есть константы JANUARY и MONDAY оба равны 1.

Работа с UTC и местным временем

Объект DateTime находится в местном часовом поясе, если явно не создан в часовом поясе UTC.

DateTime dDay = new DateTime.utc(1944, 6, 6);

Используйте isUtc, чтобы определить, основан ли объект DateTime на UTC. Используйте методы toLocal и toUtc, чтобы получить эквивалентное значение даты/времени, указанное в другом часовом поясе. Используйте timeZoneName, чтобы получить сокращённое имя часового пояса для объекта DateTime. Чтобы найти разницу между UTC и часовым поясом объекта DateTime, вызовите timeZoneOffset.

Сравнение объектов DateTime

Класс DateTime содержит несколько полезных методов, таких как isAfter, isBefore и isAtSameMomentAs, для сравнения объектов DateTime.

assert(berlinWallFell.isAfter(moonLanding) == true);
assert(berlinWallFell.isBefore(moonLanding) == false);

Использование DateTime с Duration

Используйте методы add и subtract с объектом Duration, чтобы создать новый объект DateTime, основанный на другом. Например, чтобы найти дату, которая на шестьдесят дней позже сегодняшней, напишите:

DateTime today = new DateTime.now();
DateTime sixtyDaysFromNow = today.add(new Duration(days: 60));

Чтобы узнать, сколько времени прошло между двумя объектами DateTime, используйте difference, который возвращает объект Duration:

Duration difference = berlinWallFell.difference(moonLanding)
assert(difference.inDays == 7416);

Разница между двумя датами в разных часовых поясах — это просто количество наносекунд между двумя моментами времени. Она не учитывает календарные дни. Это означает, что разница между двумя полуночами в местном времени может быть меньше 24 часов, умноженных на количество дней между ними, если между ними произошло изменение летнего времени. Если разницу выше рассчитать по местному времени Австралии, разница составляет 7415 дней и 23 часа, что составляет всего 7415 полных дней, как указано inDays.

Другие ресурсы

См. Duration, чтобы представить промежуток времени. См. Stopwatch, чтобы измерять промежутки времени.

Класс DateTime не предоставляет локализации. Для локализации кода используйте пакет intl.

Реализует
  • Comparable<DateTime>

Константы

APRIL → int
4
AUGUST → int
8
DAYS_PER_WEEK → int
7
DECEMBER → int
12
FEBRUARY → int
2
FRIDAY → int
5
JANUARY → int
1
JULY → int
7
JUNE → int
6
MARCH → int
3
MAY → int
5
MONDAY → int
1
MONTHS_PER_YEAR → int
12
NOVEMBER → int
11
OCTOBER → int
10
SATURDAY → int
6
SEPTEMBER → int
9
SUNDAY → int
7
THURSDAY → int
4
TUESDAY → int
2
WEDNESDAY → int
3

Статические методы

parse(String formattedString) → DateTime

Создаёт новый экземпляр DateTime, основанный на formattedString.

Конструкторы

DateTime(int year, [ int month = 1, int day = 1, int hour = 0, int minute = 0, int second = 0, int millisecond = 0, int microsecond = 0 ])

Создаёт экземпляр DateTime, заданный в местном часовом поясе.

DateTime.fromMicrosecondsSinceEpoch(int microsecondsSinceEpoch, { bool isUtc: false })

Создаёт новый экземпляр DateTime с заданным microsecondsSinceEpoch.

DateTime.fromMillisecondsSinceEpoch(int millisecondsSinceEpoch, { bool isUtc: false })

Создаёт новый экземпляр DateTime с заданным millisecondsSinceEpoch.

DateTime.now()

Создаёт экземпляр DateTime с текущей датой и временем в местном часовом поясе.

DateTime.utc(int year, [ int month = 1, int day = 1, int hour = 0, int minute = 0, int second = 0, int millisecond = 0, int microsecond = 0 ])

Создаёт экземпляр DateTime, заданный в часовом поясе UTC.

Свойства

день → int
только для чтения

День месяца 1..31.

hashCode → int
только для чтения
час → int
только для чтения

Час суток, выраженный в 24-часовом формате 0..23.

isUtc → bool
final

True, если этот DateTime установлен в часовом поясе UTC.

микросекунда → int
только для чтения

Микросекунда 0...999.

микросекунды_с_эпохи → int
только для чтения

Количество микросекунд с начала эпохи «Unix» 1970-01-01T00:00:00Z (UTC).

миллисекунда → int
только для чтения

Миллисекунда 0...999.

миллисекунды_с_эпохи → int
только для чтения

Количество миллисекунд с начала эпохи «Unix» 1970-01-01T00:00:00Z (UTC).

минута → int
только для чтения

Минута 0...59.

месяц → int
только для чтения

Месяц 1..12.

секунда → int
только для чтения

Секунда 0...59.

имя_часового_пояса → String
только для чтения

Название часового пояса.

смещение_часового_пояса → Duration
только для чтения

Смещение часового пояса, являющееся разницей между местным временем и UTC.

день_недели → int
только для чтения

День недели MONDAY..SUNDAY.

год → int
только для чтения

Год.

runtimeType → Type
только для чтения, унаследованно

Представление типа объекта во время выполнения.

Операторы

operator ==(other) → bool

Возвращает true, если other является DateTime в тот же момент и в той же временной зоне (UTC или локальная).

Методы

add(Duration duration) → DateTime

Возвращает новый экземпляр DateTime с добавленной duration к this.

compareTo(DateTime other) → int

Сравнивает этот объект DateTime с other, возвращая ноль, если значения равны.

difference(DateTime other) → Duration

Возвращает Duration с разницей между this и other.

isAfter(DateTime other) → bool

Возвращает true, если this происходит после other.

isAtSameMomentAs(DateTime other) → bool

Возвращает true, если this происходит в тот же момент, что и other.

isBefore(DateTime other) → bool

Возвращает true, если this происходит до other.

subtract(Duration duration) → DateTime

Возвращает новый экземпляр DateTime с вычтенной duration из this.

toIso8601String() → String

Возвращает представление в полном расширенном формате ISO-8601.

toLocal() → DateTime

Возвращает это значение DateTime в локальном часовом поясе.

toString() → String

Возвращает удобочитаемую строку для данного экземпляра.

toUtc() → DateTime

Возвращает это значение DateTime в часовом поясе UTC.

noSuchMethod(Invocation invocation) → dynamic
унаследованно

Вызывается при обращении к несуществующему методу или свойству.

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/DateTime-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API