Android: какой часовой пояс используется для `new Date ()` по умолчанию? [Дубликат]

Добавлен оператор запроса «array-contains» для использования с .where () для поиска документов, в которых поле массива содержит определенный элемент.

https: / /firebase.google.com/support/release-notes/js 5.3.0

Обновление: также доступно в @google-cloud/firestore: https://github.com/googleapis/ nodejs-firestore / релизы / tag / v0.16.0

Обновление 2 https://firebase.googleblog.com/2018/08/better-arrays-in-cloud-firestore .html

Обновление 3 теперь доступно в Admin Node.js SDK v6.0.0 https://github.com/firebase/firebase-admin-node/releases

15
задан user1182253 6 July 2012 в 07:37
поделиться

3 ответа

Сама дата не имеет никакого часового пояса. Его метод toString() использует текущий часовой пояс по умолчанию для возврата строки, представляющей эту дату:

Date date = new Date();

System.out.println(TimeZone.getDefault());
System.out.println(date);

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

System.out.println(TimeZone.getDefault());
System.out.println(date);

Выполнение вышеуказанного кода на моей машине приводит к следующему выводу:

sun.util.calendar.ZoneInfo[id="Europe/Paris",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=184,lastRule=java.util.SimpleTimeZone[id=Europe/Paris,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]
Fri Jul 06 09:24:45 CEST 2012
sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
Fri Jul 06 07:24:45 UTC 2012
20
ответ дан JB Nizet 27 August 2018 в 22:57
поделиться

Если вы работаете под Linux, есть какой-то волшебный файл часового пояса где-то в системе. Для моего gentoo волшебство просто создавало текстовый файл / etc / timezone с контентом

Europe/Berlin

. Самое забавное, что date все время давал правильное время и часовой пояс (CEST), но java отправил меня в Greenwhich.

> date
Thu Sep 18 08:49:14 CEST 2014
4
ответ дан flaschenpost 27 August 2018 в 22:57
поделиться

Ну, на самом деле базовые даты времени обычно являются агностиками часовых поясов, они не хранят часовые пояса. Чтобы использовать часовой пояс, вы используете форматирование, календари и тому подобное. Конечно, базовая дата должна быть в часовом поясе по умолчанию, каким бы он ни был (обычно GMT), иначе вы не сможете создать локальную дату из основного экземпляра даты.

В вас в частном случае это помогло бы изучить a) javadocs и b) в самом классе, поскольку JDK обычно распространяется с исходным кодом java.util.Date. Согласно javadoc, класс java.util.Date представляет собой число миллисекунд с момента стандартного базового времени, известного как «эпоха», а именно 1 января 1970 года, 00:00:00 по Гринвичу.

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

3
ответ дан Tomasz Stanczak 27 August 2018 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: