【问题标题】:Convert json timestamp to android date将json时间戳转换为android日期
【发布时间】:2013-09-18 11:56:09
【问题描述】:

我想将带有时区的 json 时间戳转换为在 android 设备上显示的字符串。

Json 时间戳为:/Date(1379488920000+0200)/

输出应考虑 android 设备所在的时区和设备上配置的格式(上午/下午或 24 小时)。输出应该只显示小时和分钟。

此代码有效,但它没有处理时区、设备时区和设备格式:

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

【问题讨论】:

标签: java android json


【解决方案1】:

我最终在我的构造函数中设置了上下文,并从重写的运行函数中传递了它。

@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)));

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多