Spec-Zone.ru › Dart 2

dart:core

Класс DateTime

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

DateTime могут представлять значения времени, удаленные не более чем на 100 000 000 дней от эпохи (1970-01-01 по UTC): -271821-04-20 до 275760-09-13.

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

Например:

final now = DateTime.now();
final berlinWallFell = DateTime.utc(1989, 11, 9);
final moonLanding = DateTime.parse('1969-07-20 20:18:04Z'); // 8:18pm

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

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

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

print(berlinWallFell.year); // 1989
print(berlinWallFell.month); // 11
print(berlinWallFell.day); // 9
print(moonLanding.hour); // 20
print(moonLanding.minute); // 18

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

final berlinWallFell = DateTime.utc(1989, DateTime.november, 9);
print(DateTime.november); // 11
assert(berlinWallFell.month == DateTime.november);
assert(berlinWallFell.weekday == DateTime.thursday);

Значения Day и month начинаются с 1, а неделя начинается с Monday. То есть, константы январь и понедельник обе равны 1.

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

Объект DateTime находится в местном часовом поясе, если явно не создан в часовом поясе UTC. Используйте isUtc, чтобы определить, основан ли объект DateTime на UTC.

final dDay = DateTime.utc(1944, 6, 6);
print(dDay.isUtc); // true

final dDayLocal = DateTime(1944, 6, 6);
print(dDayLocal.isUtc); // false

Используйте методы toLocal и toUtc, чтобы получить эквивалентное значение даты/времени, указанное в другом часовом поясе.

final localDay = dDay.toLocal(); // e.g. 1944-06-06 02:00:00.000
print(localDay.isUtc); // false

final utcFromLocal = localDay.toUtc(); // 1944-06-06 00:00:00.000Z
print(utcFromLocal.isUtc); // true

Используйте timeZoneName, чтобы получить сокращенное имя часового пояса для объекта DateTime.

print(dDay.timeZoneName); // UTC
print(localDay.timeZoneName); // e.g. EET

Чтобы найти разницу между UTC и часовым поясом объекта DateTime, вызовите timeZoneOffset.

print(dDay.timeZoneOffset); // 0:00:00.000000
print(localDay.timeZoneOffset); // e.g. 2:00:00.000000

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

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

print(berlinWallFell.isAfter(moonLanding)); // true
print(berlinWallFell.isBefore(moonLanding)); // false
print(dDay.isAtSameMomentAs(localDay)); // true

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

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

final now = DateTime.now();
final later = now.add(const Duration(hours: 36));

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

final difference = berlinWallFell.difference(moonLanding);
print(difference.inDays); // 7416

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

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

  • См. Duration для представления промежутка времени.
  • См. Stopwatch для измерения временных интервалов.
  • Класс DateTime не предоставляет интернационализацию. Для интернационализации кода используйте пакет intl.
Реализованные типы
  • Comparable<DateTime>

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

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.

Свойства

day → int
только для чтения
День месяца [1..31].
hashCode → int
только для чтения, переопределено
Хеш-код этого объекта.
hour → int
только для чтения
Час дня, в 24-часовом формате [0..23].
isUtc → bool
final
True, если этот DateTime установлен в часовой пояс UTC.
microsecond → int
только для чтения
Микросекунда [0...999].
microsecondsSinceEpoch → int
только для чтения
Количество микросекунд с момента "эпохи Unix" 1970-01-01T00:00:00Z (UTC).
millisecond → int
только для чтения
Миллисекунда [0...999].
millisecondsSinceEpoch → int
только для чтения
Количество миллисекунд с момента "эпохи Unix" 1970-01-01T00:00:00Z (UTC).
minute → int
только для чтения
Минута [0...59].
month → int
только для чтения
Месяц [1..12].
runtimeType → Type
только для чтения, унаследовано
Представление типа объекта во время выполнения.
second → int
только для чтения
Секунда [0...59].
timeZoneName → String
только для чтения
Имя часового пояса.
timeZoneOffset → Duration
только для чтения
Смещение часового пояса, которое представляет разницу между местным временем и UTC.
weekday → int
только для чтения
День недели понедельник..воскресенье.
year → int
только для чтения
Год.

Методы

add(Duration duration) → DateTime
Возвращает новый экземпляр DateTime с добавленным к этому duration.
compareTo(DateTime other) → int
override
Сравнивает этот объект DateTime с other, возвращая ноль, если значения равны.
difference(DateTime other) → Duration
Возвращает Duration с разницей при вычитании other из этого.
isAfter(DateTime other) → bool
Возвращает true, если этот момент времени следует за other.
isAtSameMomentAs(DateTime other) → bool
Возвращает true, если этот момент времени совпадает с моментом other.
isBefore(DateTime other) → bool
Возвращает true, если этот момент времени предшествует other.
noSuchMethod(Invocation invocation) → dynamic
inherited
Вызывается при попытке доступа к несуществующему методу или свойству.
subtract(Duration duration) → DateTime
Возвращает новый экземпляр DateTime с вычтенным из этого duration.
toIso8601String() → String
Возвращает представление в полном формате расширенного формата ISO-8601.
toLocal() → DateTime
Возвращает это значение DateTime в местном часовом поясе.
toString() → String
override
Возвращает удобочитаемую строку для этого экземпляра.
toUtc() → DateTime
Возвращает это значение DateTime в часовом поясе UTC.

Операторы

operator ==(Object other) → bool
override
Возвращает true, если other является объектом DateTime в тот же момент и в том же часовом поясе (UTC или локальном).

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

parse(String formattedString) → DateTime
Создаёт новый экземпляр DateTime на основе formattedString.
tryParse(String formattedString) → DateTime?
Создаёт новый экземпляр DateTime на основе formattedString.

Константы

april → const int
4
august → const int
8
daysPerWeek → const int
7
december → const int
12
february → const int
2
friday → const int
5
january → const int
1
july → const int
7
june → const int
6
march → const int
3
may → const int
5
monday → const int
1
monthsPerYear → const int
12
november → const int
11
october → const int
10
saturday → const int
6
september → const int
9
sunday → const int
7
thursday → const int
4
tuesday → const int
2
wednesday → const int
3

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/DateTime-class.html

Spec-Zone.ru

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