Джода позаботится об этом сам. Существует небольшая разница между использованием TimeZone и локали места.
Посмотрите на следующие примеры.
Использование локали:
Использование подсказки @ BillMan для DateTimeZone в качестве локали фактически изменит часовой пояс.
System.out.println("Winter " + DateTime.now(DateTimeZone.UTC).parse("2015-12-01T12:00:00").toDateTime(DateTimeZone.forID("America/New_York")).toString());
System.out.println("Summer " + DateTime.now(DateTimeZone.UTC).parse("2015-05-01T12:00:00").toDateTime(DateTimeZone.forID("America/New_York")).toString());
Возвращается:
Winter 2015-12-01T12:00:00.000-05:00
Summer 2015-05-01T12:00:00.000-04:00
Использование часового пояса:
Обратите внимание, что оба раза установлены на 12:00:00, а результат в Summer сдвинут на час (но смещение осталось прежним)
System.out.println("Winter " + DateTime.now(DateTimeZone.UTC).parse("2015-12-01T12:00:00").toDateTime(DateTimeZone.forID("EST")).toString());
System.out.println("Summer " + DateTime.now(DateTimeZone.UTC).parse("2015-05-01T12:00:00").toDateTime(DateTimeZone.forID("EST")).toString());
Возвращается:
Winter 2015-12-01T12:00:00.000-05:00
Summer 2015-05-01T11:00:00.000-05:00