0

GMTフォーマットされた文字列値がありますyyyy-MM-dd HH:mm:ss.SSS zzz

eg: 2013-07-29 06:35:40:622 GMT.IST日付オブジェクトとして取得し、タイムゾーン に変換したい。

私はこのようなことをしました... **

    String GMT = "2013-07-29 06:35:40:622 GMT";  
     DateFormat utcDateFormat =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz");
     utcDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));

    try {
        utcDateFormat.parse(GMT);
    } catch (ParseException e) {
        e.printStackTrace();
    }**

java.text.ParseException としての bt gettng エラー: 解析不能な日付: "2013-07-29 06:35:40:622 GMT"

4

3 に答える 3

8

主な(問題)はSimpleDateFormat、テキストを認識しないGMTことです。タイムゾーンの別の形式を探しています。

もう1つの問題は、フォーマットがテキストと一致しないことです...

あなたStringはの形をしています

2013-07-29 06:35:40:622 GMT

そして、あなたのフォーマットは次の形式です

yyyy-MM-dd HH:mm:ss.SSS zzz
                   ^--------This is a naughty character...

秒とミリ秒は異なる文字で区切られています。これは役に立ちません

ここで、予想される形式を実際の形式で修正しても、タイムゾーンの問題は修正されません... しかし、4 つ目DateFormatlenient方法として、形式規則を少し「曲げる」ことができます。 ..

それで、すべてを手に入れて、次のようなことを試すことができます...

String text = "2013-07-29 06:35:40:622 GMT";
SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
TimeZone gmt = TimeZone.getTimeZone("GMT");
sdf.setTimeZone(gmt);
sdf.setLenient(false);

try {
    Date date = sdf.parse(text);
    System.out.println(date);

    System.out.println(sdf.format(date));
} catch (Exception e) {
    e.printStackTrace();
}

どの出力...

Mon Jul 29 16:35:40 EST 2013
2013-07-29 06:35:40:622
于 2013-08-21T06:47:11.053 に答える
-1

これを試して。

Date d=new Date("2013-07-29 06:35:40:622");
Date newDate=new Date(d.getYear(),d.getMonth(),d.getDate());
Time t=new Time(d.getHours()+5, d.getMinutes()+30, d.getSeconds());
于 2013-08-21T06:25:47.487 に答える
-1

Joda Time はタイムゾーン変換をサポートしています。 http://www.joda.org/joda-time/userguide.html#Changing_TimeZone

于 2013-08-21T06:30:36.063 に答える