Android 时区字符串转本地时间

今天接入后台接口,突然发现服务器返回时间:2022-11-11T12:02:07.000+00:00

气冲冲去找后台,告诉对方不能返时区时间。明明我上传的时间并没有卸载时区,为什么返回来的时间却变成这个样子。

后台回答:前段已经接入,不能修改。瞬间感觉一万头羊驼奔头来过。

好吧,只能我修改了。

SimpleDateFormat已经为我们提供不同的转换方法,对照表如下:
    //HH显示的是24小时制,hh显示的是12小时制
    时间格式                            对应时间
    yyyy-MM-dd                         1969-12-31
    yyy-MM-dd                          1970-01-01
    yyyy-MM-dd HH:mm                   1969-12-31 16:00
    yyyy-MM-dd HH:mm                   1970-01-01 00:00
    yyyy-MM-dd HH:mmZ                  1969-12-31 16:00-0800
    yyyy-MM-dd HH:mmZ                  1970-01-01 00:00+0000
    yyyy-MM-dd HH:mm:ss.SSSZ           1969-12-31 16:00:00.000-0800
    yyyy-MM-dd HH:mm:ss.SSSZ           1970-01-01 00:00:00.000+0000
    yyyy-MM-dd'T'HH:mm:ss.SSSZ         1969-12-31T16:00:00.000-0800
    yyyy-MM-dd'T'HH:mm:ss.SSSZ         1970-01-01T00:00:00.000+0000
   

 主要功能代码

//服务器时区格式
SimpleDateFormat simple1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.000+00:00");
//需要展示时间格式
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

可以根据项目需求,更换不同的时间格式。

附完整方法方法

public String timezoneToTime(String timezone) {
        //服务器时区格式
        SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.000+00:00");
        //需要展示时间格式
        SimpleDateFormat toSimple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 本地时区
        Calendar nowCal = Calendar.getInstance();
        TimeZone localZone = nowCal.getTimeZone();
        // 设定SDF的时区为本地
        toSimple.setTimeZone(localZone);

        // 设置时间区域为GMT
        simple.setTimeZone(TimeZone.getTimeZone("GMT"));
        try {
            //解析GMT时间
            Date fromDate = simple.parse(timezone);
            // GMT转当前时区时间
            String toTime = toSimple.format(fromDate);
            return toTime;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "yyyy-MM-dd HH:mm:ss";
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值