내 서비스 api는 석영을위한 startDate를 취하고 실행될 작업에 대한 월 및 일을 취합니다. 내부적으로 이것을 cron 표현식으로 변환하고 석영으로 저장합니다.cron 트리거의 석영에서 일광 절약 시간제 사용자 시간대를 처리하는 방법은 무엇입니까?
예를 들어 PST 사용자는 오늘 (2017 년 11 월 3 일) 다음과 같이 작업 요청을 제출합니다.
{
"start": "2017-11-03T18:00:00-07:00",
"dayOfMonth" : 15
}
다음은 사용자가 2017년 11월 3일부터 오후 6시 일 매월 15 일에 화재를 예약하고자합니다. 첫날 석영은 2017-11-15 년에 발사 될 것입니다. 이것은 위의 요청이 cron 표현식 0 0 18 15 * ? *
으로 변환되는 방법입니다. QRTZ_CRON_TRIGGERS 테이블은 다음과 같습니다.
당신이 발견으로
는 time_zone_id은 GMT-07으로 저장됩니다 : 00 만, 서머 타임 킥 한번 년 11 월 5 일, 그것은 GMT-08해야합니다 : 00. 그렇지 않으면 내 석영 일자리가 한 시간 앞당겨 질 것입니다. 내가 nextFireTime 에 대한 쿼리 할 때 사실, 나는 우리가 어떻게 실제로 시간대 미국/로스 앤젤레스 2017년 11월 15일 17시 0분 0초 (오후) (PST)수요일 인 1,510794000000을받을 수 있나요 이 time_zone_id 문제를 해결 하시겠습니까?
P .: CalendarIntervalTrigger
에 의해 제공되는 preserveHourOfDayAcrossDaylightSavings
의 개념이없는 cronTrigger를 사용하고 있습니다.