Но как система узнает, из какого часового пояса находится мой объект Date? Что делать, если я хочу преобразовать дату из +2 часового пояса в GMT или наоборот?

ался в вопросе некоторое время в StackOverflowAndroid получить текущее время UTC а такжеКак я могу получить текущую дату и время в UTC или GMT в Java?

Я попробовал два способа узнать текущее время моего телефона в GMT. Я нахожусь в Испании, а разница GMT + 2. Итак, давайте посмотрим на примере: 1º попытки: я создал формат и применил его к System.currentTimeMillis ();

    DateFormat dfgmt = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   
    dfgmt.setTimeZone(TimeZone.getTimeZone("GMT")); 
    String gmtTime = dfgmt.format(new Date());
    //Using System.currentTimeMillis() is the same as new Date()
    Date dPhoneTime = dfgmt.parse(gmtTime);
    Long phoneTimeUTC = dPhoneTime.getTime();

Мне нужно вычесть это время в другое время, поэтому я делаю приведение к Лонгу.

    DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");          
    Date arrivalDate = df.parse(item.getArrivalDate());
    //the String comes from JSON and is for example:"UTC_arrival":"2011-05-16 18:00:00"
    //which already is in UTC format. So the DateFormat doesnt have the GMT paramater as dfgmt
    diff = arrival.getTime() - phoneTimeUTC ;

Я также попробовал это:

    Calendar aGMTCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    Long phoneTimeUTC = aGMTCalendar.getTimeInMillis()

И все же я не понимаю правильную разницу. Но если я сделаю это:

    Long phoneTimeUTC = aGMTCalendar.getTimeInMillis()-3600000*2;

Это работает хорошо.

Есть идеи?

Большое спасибо,

Дэвид.

Ответы на вопрос(5)

Ваш ответ на вопрос