>  기사  >  Java  >  Java에서 \"객체를 날짜 형식으로 지정할 수 없습니다\" 예외를 처리하는 방법은 무엇입니까?

Java에서 \"객체를 날짜 형식으로 지정할 수 없습니다\" 예외를 처리하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 19:46:30814검색

How to Handle

Java에서 객체의 형식을 날짜로 지정할 수 없습니다.

Java에서 DateFormat.format 메서드를 사용하여 특정 객체의 형식을 날짜로 지정하려고 할 때 , 다음 예외가 발생할 수 있습니다.

java.lang.IllegalArgumentException: Cannot format given Object as a Date

이 오류는 형식을 지정하려는 개체가 Date 인스턴스가 아닐 때 발생합니다. 귀하의 경우 "mm/yyyy" 패턴으로 구성된 SimpleDateFormat 인스턴스를 사용하여 문자열("2012-11-17T00:00:00.000-05:00")을 날짜 형식으로 지정하려고 합니다.

해결책

이 문제를 해결하려면 두 개의 SimpleDateFormat 객체를 사용해야 합니다. 하나는 입력 문자열을 Date 인스턴스로 구문 분석하기 위한 것이고 다른 하나는 결과 Date를 원하는 형식으로 형식화하기 위한 것입니다.

<code class="java">import java.text.SimpleDateFormat;
import java.util.Date;

public class DateParser {

    public static void main(String args[]) {
        String monthYear = null;

        // Create input format to parse from "yyy-MM-dd'T'HH:mm:ss.SSSX"
        SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");

        // Create output format to format to "MM/yyyy"
        SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy");

        String inputText = "2012-11-17T00:00:00.000-05:00";

        try {
            // Parse the input string into a Date object
            Date date = inputFormat.parse(inputText);

            // Format the parsed Date into the desired format
            monthYear = outputFormat.format(date);

            System.out.println(monthYear);
        } catch (ParseException e) {
            System.err.println("Input string is not a valid date: " + e.getMessage());
        }
    }
}</code>

이 접근 방식은 구문 분석 작업과 형식 지정 작업을 분리하여 지정된 패턴을 사용하여 형식을 지정하기 전에 입력이 Date 인스턴스로 올바르게 변환되도록 합니다.

위 내용은 Java에서 \"객체를 날짜 형식으로 지정할 수 없습니다\" 예외를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.