String timeZoneStr = "GMT-8:00";
TimeZone timeZone = TimeZone.getTimeZone(timeZoneStr);
args.put("timeZone", timeZoneStr);
args.put("dayToTriggerOn", triggerOn);
args.put("hourToTriggerOn", "0");
MonthlyScheduleHelper monthlyTriggerCalculator = new MonthlyScheduleHelper();
monthlyTriggerCalculator.init(args);
SchedulerContext schedulerContext = new SchedulerContext();
monthlyTriggerCalculator.invoke(schedulerContext, someDateTimeStamp);
long nextMonthFirstTimeStampDuration = schedulerContext.getNextTriggerInterval();
long durationStart = schedulerContext.getCurrentDurationStart();
long durationEnd = schedulerContext.getCurrentDurationEnd();