Класс 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.
- Реализует
Константы
- 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