Я использую приведенный ниже код, чтобы получить время по Гринвичу (время Индии), но код показывает неправильное значение. Я пробовал использовать UTC и GMT в часовом поясе.
val f = SimpleDateFormat("yyyy-MM-dd HH:mm:ss z")
println("Hello World"+f)
f.timeZone = TimeZone.getTimeZone("GMT")
println("Hello World"+f.format(Date()))
Даже IST тоже не работает ..
Ваш 1-й println("Hello World"+f) печатает что-то вроде:
Hello Worldjava.text.SimpleDateFormat@4d810dfa
потому что вы печатаете ссылку на объект f.
Измените его на:
println("Hello World"+f.format(Date()))
и вы получите текущую местную дату / время, как это определено в настройках вашего компьютера.
Если вы хотите напечатать дату / время специально для Индии:
f.timeZone = TimeZone.getTimeZone("IST")
println(f.format(Date()))
По-прежнему показывает неправильное значение, время в Индии 2:40 утра по IST 18.11.18, но показывает Hello World 2018-11-17 21:09:26 GMT + 00: 00
На данный момент мне достались: 2018-11-17 21:16:45 GMT и 2018-11-18 02:46:45 IST
Я не уверен, почему я получаю неправильное значение, если использую приведенный выше код.
Я вижу разницу в 30 минут между вашим GMT и моим. Бывают ли случаи, что в Индии разные часовые пояса?
Я думаю, что Индия следует по Гринвичу.
Я имел в виду, что, поскольку Индия - очень большая страна, возможно, часовой пояс на востоке отличается от часового пояса на западе.
Я думаю, что Индия следует только один раз, и в отличие от США, у которых разные часовые пояса.
Да, я это проверил, но для одного и того же часового пояса у него два разных названия: IST и Asia/Kolkata.
Я продолжу с Азией / Калькуттой. Спасибо за ваш ответ.
Спасибо всем за ваш ответ, и код ниже работает для меня.
val calender = Calendar.getInstance()
calender.timeZone = TimeZone.getTimeZone("Asia/Calcutta")
println("Hello World"+
calender.get(Calendar.HOUR_OF_DAY).toString() + ":" + calender.get(Calendar.MINUTE) + ":" + calender.getActualMinimum(
Calendar.SECOND
)
)
IST или UTC у меня не работают, поэтому я добавил часовой пояс Asia / Calcutta.
val f = SimpleDateFormat("yyyy-MM-dd HH:mm:ss z")
println("Hello World"+f)
f.timeZone = TimeZone.getTimeZone("Asia/Calcutta")
println("Hello World"+f.format(Date()))
Разве в Индии не GMT + 5:30? Я думаю, что Индия IST