Это можно сделать довольно легко, преобразовав ключ в регулярное выражение, а затем проверив, соответствует ли ваша последовательность:
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);
Как насчет некоторых педантичных деталей.
java.util.Date не зависит от часового пояса. Так говорит прямо в Javadoc.
Вы хотите что-то в отношении определенного часового пояса? Это java.util.Calendar .
Сложная часть? Когда вы печатаете этот материал (с java.text.DateFormat или подклассом ), это вовлекает Календарь (который включает часовой пояс). См. DateFormat.setTimeZone () .
Он выглядит (не проверял реализацию), как java.util.Date.toString (), проходящий через DateFormat. Так что даже наш (в основном) независимый от часового пояса класс путается с часовыми поясами.
Хотите получить этот материал о часовых поясах из наших чистых безликих объектов Date? Есть Date.toGMTString () . Или вы можете создать свой собственный SimpleDateFormatter и использовать setTimeZone (), чтобы контролировать, какая зона используется самостоятельно.
См. https://docs.oracle.com/javase/7/docs/api/java/util/Date.html#toString () .
Да, он использует часовые пояса. Следует также распечатать их (три символа до года).
Потому что это число миллисекунд - это количество миллисекунд после 01.01.1970 по всемирному координированному времени. Если вы затем переведете в другой часовой пояс, отображаемое время будет другим.
например, 123456 может соответствовать полудню по Гринвичу (UTC). Но в Нью-Йорке это будет другое время.
Чтобы подтвердить это, используйте SimpleDateFormat с выводом часового пояса и / или измените часовой пояс на втором компьютере, чтобы он соответствовал первому.
почему это так?
Потому что что-то вроде «4 октября 2009, 14:20» бессмысленно без знания часового пояса, к которому оно относится - что вы, скорее всего, можете увидеть прямо сейчас, потому что это мое время, когда я пишу это, и оно, вероятно, отличается на несколько часов от вашего времени, даже если это тот же самый момент времени.
Компьютерные отметки времени обычно измеряются в формате UTC (в основном часовом поясе Гринвича, Англия), и часовой пояс должен приниматься во внимание при их форматировании во что-то удобочитаемое.