2013-09-18 5 views
-2

Я хотел бы конвертировать json timestamp с часовым поясом в строку, представленную на Android-устройстве.Convert json timestamp to android date

Json временная отметка: /Date(1379488920000+0200)/

Выход следует рассмотреть временную зону, что андроид устройства и находится в формате (AM/PM или 24 часа), который настроен на устройстве. Выход должен показывать только часы и минуты.

Этот код работает, но это не заботясь о часовом поясе, часовой пояс устройства и формат устройства:

String timestamp = jsonDate.split("\\(")[1].split("\\+")[0]; 
String departure = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT) 
         .format(new Date(Long.parseLong(timestamp))); 
+0

попробовать это http://stackoverflow.com/questions/18691376/java-convert-utc-timestamp- to-local-datetime/18692993 # 18692993 –

+0

Спасибо, Biraj, но где указать часовой пояс из моей метки времени? – Goran

ответ

0

Я в конечном итоге установка контекста внутри моего конструктора, и передать его из перегруженной функции выполнения.

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 

    Timer timer = new Timer(); 
    timer.scheduleAtFixedRate(new FetchData(context, appWidgetManager), 1, 30000); 
} 

private class FetchData extends TimerTask { 
    RemoteViews remoteViews; 
    AppWidgetManager appWidgetManager; 
    ComponentName thisWidget; 
    Context thisContext = null; 

    public FetchData(Context context, AppWidgetManager appWidgetManager) 
    { 
     thisContext = context; 
     this.appWidgetManager = appWidgetManager; 
     remoteViews = new RemoteViews(context.getPackageName(), R.layout.main); 
     thisWidget = new ComponentName(context, HelloWidget.class); 
    } 

    @Override 
    public void run() 
    { 
     String restUrl = TrainFromSki; 
     remoteViews.setTextViewText(R.id.widget_textview, GetTextData(thisContext, restUrl)); 
     appWidgetManager.updateAppWidget(thisWidget, remoteViews); 
    } 
} 

Внутри GetTextData, я следующий, чтобы получить дату отформатирован в соответствии с настройками устройства:

String jsonDate = "/ Date(1379488920000+0200) /"; 
String timestamp = jsonDate.split("\\(")[1].split("\\+")[0]; 

String departure = DateFormat.getTimeFormat(context) 
      .format(new Date(Long.parseLong(timestamp)));