Вопрос по java – Java Как напечатать время в IST

2

Я могу получить время и часовой пояс в настоящее время. но это всегда печатается в

Wed May 23 11:01:08 GMT+05:30 2012

Как TimeZone я получаюGMT+05:30, вместо этого я хочу напечататьIST

Я старался

 SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");

но все же я получаюGMT+05:30

TimeZone.getDefault().getDisplayName(true, TimeZone.SHORT); is also givine me GMT+05:30

Есть разные вещи, которые я пробовал, но не получил желаемого результата. я использовалCalender но все еще не может распечататьIST .

Может кто-нибудь, пожалуйста, дайте мне знать, как печататьIST вовремя (даже я не хочу печататьIndian standard time)

Ваш Ответ

2   ответа
4

using SimpleDateFormat, Вот короткий, но полный пример, которыйdoes показать IST:

import java.text.*;
import java.util.*;

class Test {
    public static void main(String[] args) {
        SimpleDateFormat sd = new SimpleDateFormat(
            "yyyy.MM.dd G 'at' HH:mm:ss z");
        Date date = new Date();
        // TODO: Avoid using the abbreviations when fetching time zones.
        // Use the full Olson zone ID instead.
        sd.setTimeZone(TimeZone.getTimeZone("IST"));
        System.out.println(sd.format(date));
   }
}

Вывод на мою машину:

2012.05.23 AD at 11:18:08 IST

Обратите внимание, что еслиTimeZone.getDefault() не показывает "IST"; тогда проблема может быть:

That the system can't actually identify your system time zone That your Java installation doesn't have full time zone information regarding i18n

Какую версию Java вы используете и на какой платформе?

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededTimeZone.getTimeZoneError: User Rate Limit ExceededTimeZoneError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

у вас неправильная настройка часового пояса. Следующий код напечатает2012.05.23 AD at 11:30:20 IST

TimeZone.setDefault(TimeZone.getTimeZone("IST"));
SimpleDateFormat f = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
System.out.println(f.format(new Date()));

Однако, если я используюTimeZone.setDefault(TimeZone.getTimeZone("GMT+05:30"));

Я получу2012.05.23 AD at 11:30:20 GMT+05:30.

То, что входит, выходит идентичным.

Похожие вопросы