Используйте getTimeZone.getDefault
в сочетании с документацией Android.
публичная статическая синхронизация TimeZone
getDefault ()
Получает часовой пояс по умолчанию. Возвращает
часовой пояс по умолчанию.
Таким образом, поскольку вы знаете, что CST -6: 00 по Гринвичу, и вы получаете местный часовой пояс, в котором говорится, что пользователь равен +9: 00 (Япония), вы бы хотели настроить время работы MySQL DB на +15 часов ( 9 - (-6)). Или, если они находятся в Майами (EST, -5), вы бы скорректировали, добавив один час (-5 - (-6)). Если вы находитесь в Портленде, штат Орегон, (PST-8), вы должны вычесть 2 часа (-8 - (- 6)).
Так что на самом деле вам просто нужно получить смещение местного часового пояса и подать его в основное уравнение: TimeZone.getDefault + 6
, и вы будете знать, что добавить или вычесть в свою локальную базу данных. (+6, поскольку - (- 6) всегда получается до +6).
Если бы я знал в первую очередь о написании Java, я бы пошел на дополнительный шаг и написал бы небольшой пример кода, но, увы, я достаточно умен для сценариев.
Грубая попытка на Яве
Я уже сказал, что понятия не имею, как сделать Java или объектно-ориентированное что-нибудь, верно?
Вот грубая попытка просто покопаться в документации Android. Любые тонкости или простые замечания «Даже не близко» приветствуются. Имейте в виду, что я выяснил правильный метод и класс уже из быстрого поиска, и я придумал простое уравнение для преобразования смещения часового пояса для любого места в CST, так что я не тупица, просто кто-то, кто этого не делает знаю, когда оставить достаточно хорошо в одиночестве. В любом случае, грубая попытка:
System now = System.currentTimeMillis (); //Gets current local time in ms
TimeZone local_tz = TimeZone.getDefault(); //Gets current local TZ of phone
tz_offset_gmt = local_tz.getOffset(now)/3600000; // Get Offset in ms, divide by 3600000
tz_offset_cst = tz_offset_gmt + 6; // add offset to 6 to get current TZ offset to CST.
Где-нибудь близко к тому, как это сделать в Java?