Я сталкиваюсь со странной проблемой в программе, работающей на Android 2.1, которая мне кажется ошибкой в Android.Пожалуйста, просветите меня о том, что здесь происходит, так как я потерян.:)
Следующая программа:
import java.util.*;
import java.text.*;
class TestMe {
public static void main(String[] args) {
String time = "2010-08-01T18:00:00+0000";
TimeZone tg = TimeZone.getDefault();
System.out.println(tg.getID());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
try {
Date indate = formatter.parse(time);
String outdate = formatter.format(indate);
System.out.println(outdate);
formatter.setTimeZone( TimeZone.getTimeZone("UTC"));
String ooutdate = formatter.format(indate);
System.out.println(ooutdate);
formatter.setTimeZone( TimeZone.getDefault() );
Date ioutdate = formatter.parse(ooutdate);
System.out.println(formatter.format(ioutdate));
} catch( Exception e ) {
e.printStackTrace();
}
}
}
возвращает это при использовании последней версии Java на Mac:
(~) % javac -g TestMe.java && java TestMe
Europe/Berlin
2010-08-01T20:00:00+0200
2010-08-01T18:00:00+0000
2010-08-01T20:00:00+0200
, но возвращает следующее при запускевнутри метода в моем приложении для Android на 2.1:
I/System.out( 5379): ------------------------------------------------------------------
I/System.out( 5379): Europe/Berlin
I/System.out( 5379): 2010-08-01T20:00:00+0200
I/System.out( 5379): 2010-08-01T18:00:00+0100
I/System.out( 5379): 2010-08-01T18:00:00+0100
I/System.out( 5379): ------------------------------------------------------------------
Кто-нибудь знает о проблемах в этой конкретной версии Android API, с TimeZone и разбор даты?Это очень странная проблема для меня, так как версия для Android должна возвращать точно такую же версию, как и версия Java, но не возвращает.
Спасибо за любые подсказки,
Карстен