当前位置: 代码迷 >> java >> Android JodaTime将UTC转换为用户的时间
  详细解决方案

Android JodaTime将UTC转换为用户的时间

热度:56   发布时间:2023-08-04 09:22:37.0

我在解决这种幼稚的情况时陷入困境。 这是我将UTC转换为当地时间的目的。

public static DateTime timezoneAwareDate(Date date){
    DateTime input = new DateTime(date,DateTimeZone.UTC);
    DateTime output = input.withZone(DateTimeZone.getDefault());
    Log.d(niftyFunctions.LOG_TAG,new SimpleDateFormat("yyyy-mmm-dd hh:mm").format(output.toDate()));
    return output;
}

这是我的输入日期在UTC中的样子,来自服务器:

2015-07-28 16:30

但是,这是我从Log.d语句在IST上的手机上得到的内容:

2015-030-28 07:30

我为实际发生的事情而疯狂。 有什么帮助吗?

因此,我只使用本机库使用了无Joda解决方案。 这是功能

/**
     * Returns localtime for UTC
     *
     * @param date
     * @return
     */
    public static Date timezoneAwareDate(String date){
        // create simpledateformat for UTC dates in database
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

        Date output;
        // parse time
        try{
            output = simpleDateFormat.parse(date);
        }catch (Exception e){
            // return current time
            output = new Date();
        }

        return output;
    }
  相关解决方案