26
2017
09

关于UTC时间的转本地时间

最近发现项目中后台采用的是UTC(世界标准时间)时间格式。而且还不是标准的UTC,这让我很尴尬,而且以前项目中处理时间的方式也是极其无脑。

首先来说下尴尬的是事情是什么,后台采用的Python语言开发,因为人员流动,代码不统一,时间返回不标准。例如一个时间可能是

String time="2017-08-05T12:22:59Z";

这个是标准的UTC时间格式,我不知道为什么还会返回第二种格式如:

String time="2017-08-05T12:22:59";

简直是无语了,那怎么办,只能自己解决了,将错就错

public static void main(String[] args) {

        parseTime("2017-08-05T12:22:59Z");
    }

    public static void parseTime(String utcTimeStr){
        try {
            SimpleDateFormat sdf;
            if (utcTimeStr.indexOf("Z")==0) {
                 sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
            }else{
                 sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
            }
            long parseTime = sdf.parse(utcTimeStr).getTime();
            String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(parseTime));
            System.out.println(format);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

最后打印的时间是

2017-08-05 12:22:59

这种方式完美的解决了返回时间格式不一致的问题,比起以前的Android用替换字符串的方式要正规很多,虽然那种方法能解决问题,但是我觉得还是要按照标准来

上一篇:Unity将来时:IL2CPP是什么? 下一篇:idea错误:main method not found in class