Преобразование выражения cron из одного часового пояса в другойJAVA

Программисты JAVA общаются здесь
Anonymous
Преобразование выражения cron из одного часового пояса в другой

Сообщение Anonymous »

Я ищу способ конвертировать выражение cron из одного часового пояса в другой часовой пояс.
Например, пользователь моего веб-клиента — GMT+1200, а серверная часть — GMT+0800, а пользователь устанавливает 02:10 для выполнения задачи каждый вторник и четверг, выражение cron будет 0 10 2 3,5 * ?, и я использовал код, как показано ниже, он может получить текущий огонь время для часового пояса пользователя

Код: Выделить всё

CronExpression expr = new CronExpression("0 10 2 3,5 * ?");

System.out.println(expr.getNextValidTimeAfter(new Date()));
System.out.println(expr.getTimeZone());
System.out.println(expr.getExpressionSummary());
System.out.println("=======");
TimeZone tz = TimeZone.getTimeZone("GMT+1200");
expr.setTimeZone(tz);
System.out.println(expr.getNextValidTimeAfter(new Date()));
System.out.println(expr.getTimeZone());
System.out.println(expr.getExpressionSummary());
GetNextValidTimeAfter напечатает понедельник 02 февраля 22:10:00 CST 2015, что после setTimeZone(tz);, однако getExpreesionSummary или даже getCronExpression() по-прежнему будет 0 10 2 3,5 * ?, где я хочу получить строку, будет 0 10 22 2,4 * ?, а затем я могу сохранить в БД для следующего запуска, а также другого пользователя часового пояса для запроса настроек (конечно, для этого потребуется преобразовать 0 10 22 2,4 * ? в часовой пояс этого пользователя)
Любая помощь приветствуется

Подробнее здесь: https://stackoverflow.com/questions/282 ... nother-one

Вернуться в «JAVA»