날짜를 "indies time"으로 변환하고 싶습니다. 구체적으로는 "아시아/캘커타"입니다.Java 날짜를 다른 날짜로 변환하십시오.
코드 : 여기
// TODO Auto-generated method stub
Date date=new Date();
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
String dateString=simpleDateFormat.format(date);
System.out.println("Currect Date : " + dateString);
// This is returning a string and I want a date.
System.out.println("Wrong Output : "+simpleDateFormat.parse(dateString));
//This returns a Date but has incorrect result.
는 위의 코드의 출력 : 나는 날짜가 아닌 문자열을 원하는
Correct Date : 2013-04-15 15:40:04
Wrong Output : Mon Apr 15 03:10:04 MST 2013
,하지만 난 날짜를 검색 할 때, 시간이 3:10
입니다, 문자열을 가져 오면 15:40:04
이됩니다. 왜 이것들은 같지 않은가?
다른 사람들에게 추가하는 것 ... Date 객체는 특정 시점을 나타내고 ** TZ를 ** 알고있는 SimpleDateFormat 객체를 사용하여 만들었지 만 ** no ** TZ 지식을 포함합니다. 날짜를 문자열 표현으로 변환 할 때마다 어떻게 표시해야하는지 알기 위해서는 TZ를 사용해야합니다. Date는 TZ를 알지 못하기 때문에 암시 적으로'date.toString()'을 호출 할 때 ** default ** TZ를 의미하는 것으로 간주 할 수 밖에 없습니다. Date의'toString()'메소드에 의존하는 대신 TZ를 알고있는 SDF를 사용하여 포맷해야한다. – Blake