1

文字列のタイムスタンプ値をJavaDateオブジェクトに変換する必要があります。文字列は「2011-03-16T09:00:00-05:00」形式です。SimpleDateFormatを使用してこのデータをDateオブジェクトとしてロードするために使用できるタイムゾーン表現はありますか?'z'、'Z'、および'zzzz'は、私が認識している唯一のタイムゾーン表現であり、これらのいずれも私のタイムゾーンデータ(-05:00)を表すことはできません。誰かがこの問題を解決しましたか?

ありがとう。

4

3 に答える 3

1

JodaTimeが役立つかもしれません。それとカスタムフォーマッター(「気紛れなフォーマッター」と呼ばれる)の使用を検討してください。

http://joda-time.sourceforge.net/userguide.html#Input_and_Output

于 2011-03-22T20:23:12.077 に答える
0

残念ながら、タイムゾーンのコロンは問題を少し複雑にします。この質問をご覧になることをお勧めします。

于 2011-03-22T20:23:55.293 に答える
0

提供されているこのタイムスタンプ形式がXMLで使用されている標準形式のように見えるので、次のことを試すことができます。

public static void main(String[] args) throws DatatypeConfigurationException {

    String inDate = "2011-03-16T09:00:00-05:00";

    javax.xml.datatype.DatatypeFactory factory = DatatypeFactory.newInstance();

    javax.xml.datatype.XMLGregorianCalendar xmlGregCal = factory.newXMLGregorianCalendar(inDate);

    java.util.GregorianCalendar gregCal = xmlGregCal.toGregorianCalendar();

    java.util.Date dateObj = gregCal.getTime();

    System.out.println("cal = " + xmlGregCal.toString());
    System.out.println("cal.year = " + xmlGregCal.getYear());
    System.out.println("cal.month = " + xmlGregCal.getMonth());
    System.out.println("cal.day = " + xmlGregCal.getDay());
    System.out.println("cal.hour = " + xmlGregCal.getHour());
    System.out.println("cal.minute = " + xmlGregCal.getMinute());
    System.out.println("cal.second = " + xmlGregCal.getSecond());
    System.out.println("cal.timezone = " + xmlGregCal.getTimezone());
    System.out.println("cal.eonAndYear = " + xmlGregCal.getEonAndYear());
}

作成される出力は次のとおりです。

cal = 2011-03-16T09:00:00-05:00
cal.year = 2011 cal.month = 3
cal.day = 16
cal.hour = 9
cal.minute = 0
cal.second = 0
cal.timezone =- 300
cal.eonAndYear = 2011

于 2011-03-22T21:14:21.327 に答える