java.util. Использование даты TimeZone?

Это можно сделать довольно легко, преобразовав ключ в регулярное выражение, а затем проверив, соответствует ли ваша последовательность:

var key = "cat"; // or whatever
var sequence = "c1a2t3"; // or whatever
var r = ".*" + key.split("").join(".*") + ".*"; // makes string representation of regex of .*c.*a.*t.*
var valid = sequence.match(r);
23
задан Adam Arold 30 March 2016 в 09:07
поделиться

4 ответа

Как насчет некоторых педантичных деталей.

java.util.Date не зависит от часового пояса. Так говорит прямо в Javadoc.

Вы хотите что-то в отношении определенного часового пояса? Это java.util.Calendar .

Сложная часть? Когда вы печатаете этот материал (с java.text.DateFormat или подклассом ), это вовлекает Календарь (который включает часовой пояс). См. DateFormat.setTimeZone () .

Он выглядит (не проверял реализацию), как java.util.Date.toString (), проходящий через DateFormat. Так что даже наш (в основном) независимый от часового пояса класс путается с часовыми поясами.

Хотите получить этот материал о часовых поясах из наших чистых безликих объектов Date? Есть Date.toGMTString () . Или вы можете создать свой собственный SimpleDateFormatter и использовать setTimeZone (), чтобы контролировать, какая зона используется самостоятельно.

49
ответ дан 29 November 2019 в 01:04
поделиться

См. https://docs.oracle.com/javase/7/docs/api/java/util/Date.html#toString () .

Да, он использует часовые пояса. Следует также распечатать их (три символа до года).

2
ответ дан 29 November 2019 в 01:04
поделиться

Потому что это число миллисекунд - это количество миллисекунд после 01.01.1970 по всемирному координированному времени. Если вы затем переведете в другой часовой пояс, отображаемое время будет другим.

например, 123456 может соответствовать полудню по Гринвичу (UTC). Но в Нью-Йорке это будет другое время.

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

5
ответ дан 29 November 2019 в 01:04
поделиться

почему это так?

Потому что что-то вроде «4 октября 2009, 14:20» бессмысленно без знания часового пояса, к которому оно относится - что вы, скорее всего, можете увидеть прямо сейчас, потому что это мое время, когда я пишу это, и оно, вероятно, отличается на несколько часов от вашего времени, даже если это тот же самый момент времени.

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

7
ответ дан 29 November 2019 в 01:04
поделиться
Другие вопросы по тегам:

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