시간대를 fullname 시간대를 사용하여 다른 시간대로 변환하려고합니다. 아래는 자바 API입니다.FullName 시간대가 잘못된 시간입니다.
TimeZone.setDefault(TimeZone.getTimeZone("Africa/Algiers"));
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String dateInString = "09:44:00";
TimeZone tzGMT01 = TimeZone.getTimeZone("Africa/Algiers");
formatter.setTimeZone(tzGMT01);
Date dateInAmerica = formatter.parse(dateInString);
String fromInput = formatter.format(dateInAmerica);
TimeZone tzGMT03 = TimeZone.getTimeZone("Asia/Bahrain");
formatter.setTimeZone(tzGMT03);
String toInput = formatter.format(dateInAmerica);
Time ts = java.sql.Time.valueOf(toInput);
09:44:00
의 시간 가치에 대한 예상 출력은 "아시아/바레인"시간이 11:44:00
에 있습니다 변환. 그러나 출력은 13:44:00
입니다.
위의 진술에서 잘못된 점을 안내 해줄 수 있습니까? SimpleDateForma 제대로 트릭을 할 것입니다
SimpleDateFormat f = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date currentTime = new Date();
System.out.println(f.format(currentTime.getTime()));
f.setTimeZone(TimeZone.getTimeZone("Asia/Bahrain"));
System.out.println(f.format(currentTime.getTime()));
: 당신은 아시아/바레인에 제공되는 시간대를 사용
그 답변의 끝 부분에서 언급했듯이,'CET','AST','GST'와 같은 3 - 4 자의 약어가 문제입니다. 표준 시간대가 아니며 표준화되지 않았고 고유하지 않습니다 (!). 대신 [적절한 시간대 이름] (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)을 사용하십시오. –
이것은 올바른 분석입니다. 나는 입력 된 시간을 현재 날짜로 변환하고 입력 된 시간을 덧붙였다. 이 날짜 시간 값이 올바른 변환 값을 반환했습니다. 이것은 매우 도움이됩니다. 고맙습니다. – Anjana