#java
#java
Вопрос:
Я могу преобразовать местное время в время UTC на моем локальном хостинге (в ECLIPSE).
для преобразования заданного местного времени во время UTC я пишу приведенный ниже код
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class TimeToUtc {
public static void main(String args[]) throws ParseException {
SimpleDateFormat f = new SimpleDateFormat("HH:mm:ss");
f.setTimeZone(TimeZone.getTimeZone("UTC"));
DateFormat simpleDateFormat1=new SimpleDateFormat("HH:mm:ss");
java.util.Date dutyDay = (java.util.Date) simpleDateFormat1.parse("12:41:00");
System.out.println(dutyDay);
System.out.println(f.format(dutyDay));
String dd = f.format(new Date());
}
}
выходной сигнал:-
Thu Jan 01 12:41:00 IST 1970
07:11:00
Приведенный выше код работает хорошо и хорошо в моем eclipse. но когда я выполняю этот java-файл на сервере (производство), он выдает вывод только по местному времени.
на сервере вывод выглядит следующим образом
Thu Jan 01 12:41:00 IST 1970
12:41:00
но то, что я хочу, похоже на сервер.
Thu Jan 01 12:41:00 IST 1970
07:11:00
пожалуйста, помогите мне решить эту проблему.
Спасибо.
Комментарии:
1. Вы не можете преобразовать местное время в UTC, не зная даты, потому что разница между местным временем и UTC зависит от таких факторов, как то, действует ли летнее время (DST). Без указания даты результат может быть ошибочным.
2. Вы сказали «производственный сервер», поэтому, когда вы говорите «местное время», вы имеете в виду время сервера или время, в котором находится пользователь? Обратите внимание, что время работы сервера может отличаться от времени, в котором находится сервер.
3. Вероятно, вам следует проверить, какой TZ установлен на вашем производственном сервере. Разница во времени между вашим локальным и производственным может быть смещением часового пояса, которое будет применено.
4. Вы используете Java 8 ? Переключитесь на
java.time
API, и ваша боль исчезнет почти сразу.