2013-03-18 2 views
0

Я хочу получить объект Date в часовом поясе UTC, поэтому я сначала конвертирую его в строку, которая меня проверяет правильную строку UTC Date String, но когда я снова разбираю ее с объектом Date, тогда локальная строка времени (то есть IST) добавляется в эту дату вместо UTC.Почему локальное времяZone Строка добавляется в UTC?

 Date date = new Date(); 
     DateFormat timeFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 
     timeFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
     String estTime = timeFormat.format(date); 
     date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss", Locale.ENGLISH).parse(estTime); 
+0

Вы хотите получить текущее время в UTC? –

+0

Да, но только в форме Date Object only .. – user2182258

ответ

2

А Date не часовой пояс, она представляет собой момент времени. Он занимает время в миллисекундах.

У вас не может быть Date с форматом, это не работает. Если вам нужно показать Date в GUI, консоли или где-нибудь еще, то вы используете SimpleDateFormat, как вы это сделали, чтобы изменить его на String в нужном вам формате.

+0

Мне нужно передать эту дату Объект в базу данных ... – user2182258

+0

База данных будет использовать свой собственный формат для хранения 'Date', ему также не нужен часовой пояс. Если ваше поле в базе данных для 'Date' не является« String »(или эквивалентным ему), вам не нужно ничего делать с датой. Используйте 'PreparedStatement' и передайте ему' Date'. –

+0

В этом случае время хранения будет специфичным для сервера ??? Мне нужно хранить время (в соответствии с часовым поясом UTC) .. ?? – user2182258

Смежные вопросы