2013-03-14 5 views
0

У меня есть веб-приложение со мной. Он показывает время в США. Я хочу показать индийское время. Я пробовал установить свойство uing System.getProperty().setProperty("user.country","IN"); и System.getProperty().setProperty("user.variant","IN");, но все же он показывает время использования.Невозможно изменить часовой пояс веб-приложения java

Я даже попробовал Locale.setDefault(new Locale("en", "IN"));, но зря.

Когда я делаю это

SimpleDateFormat format = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa -- z"); 
System.out.println("Date: "+format.format(new Date())); 

В результате Date: 02013.March.14 AD 12:29 AM -- GMT-08:00. что я делаю неправильно.

Это JSF 1.1 и Hibernate 3 проекта развернут в коте 6.

Спасибо заранее.

+0

спасибо, лев, но это не то, что я ищу. –

ответ

1

Добавьте эту строку:

format.setTimeZone(TimeZone.getTimeZone("IST")); 
+0

, который является лучшим местом для размещения этого кода в моем веб-приложении, чтобы это можно было установить, как только приложение станет на сервере. –

+0

Поместите эту строку сразу после инициализации 'SimpleDataFormat' – Barney

2

Попробуйте

SimpleDateFormat f = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa -- z"); 
    f.setTimeZone(TimeZone.getTimeZone("IST")); 
    System.out.println(f.format(new Date())); 
0

Ваш вопрос сбивает с толку. Это действительно время в США? JSF по умолчанию настроен на UTC. Если это действительно действительно время в США (например, EDT), то оно должно быть явно настроено как таковое в атрибуте timeZone всех тегов <f:convertDateTime>. Все, что вам нужно было сделать, это изменить «EDT» на «IST». Но это настолько очевидное решение, что я думаю, что на самом деле вы не используете время в США, а только UTC.

Ваша попытка решить проблему также сбивает с толку. Вы сказали и отметили, что используете JSF, но вы не пытаетесь решить его как способ JSF, но простой способ Java. На самом деле это не так, как вы должны конвертировать дату/время в JSF. Вы должны использовать <f:convertDateTime> для задания, а не SimpleDateFormat.

В любом случае вам необходимо настроить все теги <f:convertDateTime>, чтобы явно установить атрибут timeZone на IST.

<h:outputText value="#{bean.date}"> 
    <f:convertDateTime timeZone="IST" /> 
</h:outputText> 

Обратите внимание, что если вы используете JSF 2.x, то вы можете также установить параметр web.xml контекста, чтобы применить это изменение applicationwide. См. Также Set a default time zone for f:convertDateTime.