SimpleDateFormatter.parse 출력 형식 불일치
SimpleDateFormat을 사용하여 UNIX 타임스탬프를 특정 날짜 형식으로 변환하려고 하면 사용자는 형식이 지정되고 구문 분석된 출력입니다.
이러한 불일치의 한 가지 이유는 시간대가 일치하지 않을 가능성이 있기 때문입니다. SimpleDateFormat의 시간대가 예상 출력과 일치하는지 확인하세요. 또한 Date 생성자에서 요구하는 대로 에포크 타임스탬프가 밀리초 단위로 표시되는지 확인하세요.
제안 솔루션:
잠재적인 형식 문제를 방지하고 데이터베이스 호환성을 보장하려면 문자열 대신 날짜 객체를 MySQL에 직접 전달하는 것이 좋습니다. LocalDateTime과 같은 java.time 클래스를 활용하여 날짜와 시간을 나타냅니다.
업데이트된 코드 조각은 다음과 같습니다.
<code class="java">String ep = "a1527069600"; long epoch = Long.parseLong(ep.substring(1)); Instant instant = Instant.ofEpochSecond(epoch); LocalDateTime ldt = instant.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime(); PreparedStatement ps = myDatabaseConnection.prepareStatement( "insert into my_table (my_date_time) values (?)"); ps.setObject(1, ldt);</code>
이 접근 방식을 사용하면 날짜가 지정된 시간에 따라 형식이 지정됩니다. 영역에 저장되며 데이터베이스에 객체로 저장되므로 형식 오류 가능성이 없습니다.
위 내용은 핵심 문제와 해결 방법에 초점을 맞춘 몇 가지 제목 옵션은 다음과 같습니다. 옵션 1(직접 및 문제 중심): * UNIX 시간을 변환할 때 SimpleDateFormat.parse가 일관되지 않은 출력을 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!