【问题标题】:Covert UTC time format to local time [duplicate]将UTC时间格式转换为当地时间[重复]
【发布时间】:2023-04-09 03:24:01
【问题描述】:

我有一个 2013-03-04T14:37:15 格式的 UTC 时间,如何将其转换为本地时间,然后转换为 one minute ago 格式。

我首先尝试将时间转换为本地格式:

private String getDate(String date) {
        Date fDate = null;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        try {
            fDate = simpleDateFormat.parse(date);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
return fDate.toString();
    }

但是上面的函数会抛出一个异常说无法解析的日期..

【问题讨论】:

标签: android utc android-date


【解决方案1】:

你得到的解析异常是因为你的日期中额外的T(2013-03-04T14:37:15)。

您可以删除多余的“T”并使用您当前的日期格式解析日期,

或者,如果您需要使用 T 解析它,请更改格式以解析文字 T

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

【讨论】:

  • 现在工作正常,得到这样的格式化日期:Mon Mar 04 20:07:15 GMT+05:30 2013,我怎样才能将其更改为所需的格式,例如:yyyy-mm-dd下午 04:30
【解决方案2】:

检查DateUtils.getRelativeTimeSpanString()(来自 DateUtils 的同名方法)。它会是这样的:

Date fDate = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
fDate = simpleDateFormat.parse(date);
return DateUtils.getRelativeTimeSpanString(context, System.currentTimeMillis()-fDate.getTime())'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-19
    • 2015-09-26
    • 1970-01-01
    • 2018-07-14
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多