자바에서 날짜가 파싱되는 방법에 대해 머리를 쓰려고 노력하고 있으며, 여전히 내가 대기하고있는 시간대에 관계없이 일관된 출력을 얻기 위해 매개 변수로 전달해야하는 것을 해결할 수없는 것 같습니다.SimpleDateFormatter 구문 분석이 다르게 작동합니까?
다음과 같은 출력 제공import java.util.Date;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
public class TimeTest {
public static void main(String [] args) throws Exception
{
String dateString = "2012-03-28 11:45:00 +0200";
String dateString1 = "2012-03-28 11:45:00 +0000";
Timestamp timestamp= null;
Timestamp timestamp1= null;
DateFormat planningDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
Date date = planningDateFormat.parse(dateString);
Date date1 = planningDateFormat.parse(dateString1);
timestamp = new Timestamp(date.getTime());
timestamp1 = new Timestamp(date1.getTime());
System.out.println("Time value passed in was: " + dateString);
System.out.println("Date value after parse: " + date);
System.out.println("Time stamp value is: " + timestamp);
System.out.println("Time value passed in was: " + dateString1);
System.out.println("Date value after parse: " + date1);
System.out.println("Time stamp value is: " + timestamp1);
}
}
:
나는이 테스트 클래스 작성
:Time value passed in was: 2012-03-28 11:45:00 +0200
Date value after parse: Wed Mar 28 10:45:00 IST 2012
Time stamp value is: 2012-03-28 10:45:00.0
Time value passed in was: 2012-03-28 11:45:00 +0000
Date value after parse: Wed Mar 28 12:45:00 IST 2012
Time stamp value is: 2012-03-28 12:45:00.0
이제
날이의 이유 비를 설명하자 어떤 의미가 있습니다
첫 번째 날짜는 통과하고 오전 11시 45 분에 +0200 오프셋을 사용하고 아일랜드 표준시 10:45 인 IST를 제공합니다.
아무도 저에게 무슨 일이 일어나고 있는지 그리고 어떻게 결론에 도달했는지 설명 할 수 있습니까? 시간은 11:45이며, UTC는 11:45 또는 현지 시간은 11:45입니다 (오프셋이 +0200 인 국가). 내가보기에 시간이 현지 시간을 나타내는 것처럼 보입니다.
또 다른 질문은 다음과 같습니다.
아일랜드에 거주하는 경우 겨울에는 +0000, 여름에는 +0100입니다. "Z"에 전달되는 값이 쿼리하는 날짜에 따라 변경됩니까? 또는 자바가 날짜와 함께 시간에 따라 자동으로 이것을 알아야하지 않을까요?
나는 실제로 무슨 일이 일어나는지 알지 못합니다.
공정한 점 그러나 나는 변덕스러워하고 때로는 심지어 내 말을 어지럽히고 그걸 바꿨습니다. –
걱정할 필요가 없습니다. BTW, IMHO 실독증이라는 단어를 생각한 사람은 새디스트 야. – Bohemian