java UTC时间格式化

Posted Nihaorz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java UTC时间格式化相关的知识,希望对你有一定的参考价值。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author 王睿
 * @date 2019-01-24 14:32
 */
public class TimeFormat {

    public static void main(String[] args) throws ParseException {
        String text = "2019-01-03T08:26:15.503162206Z";
        text = "2019-01-03T08:26:15Z";
        Date date = parseUTCText(text);
        System.out.println(date);
    }

    /**
     * @param text 时间字符串,格式支持两种
     *             1、不包含毫秒值,如"2019-01-03T08:26:15Z";
     *             2、支持任意位数的毫秒值:2019-01-03T08:26:15.503162206Z;
     *             转换出来的Date类型精度知道毫秒位
     * @return
     * @throws ParseException
     */
    public static Date parseUTCText(String text) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd‘T‘HH:mm:ss.SSS‘Z‘");
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        if (text.indexOf(".") > -1) {
            String prefix = text.substring(0, text.indexOf("."));
            String suffix = text.substring(text.indexOf("."));
            if (suffix.length() >= 5) {
                suffix = suffix.substring(0, 4) + "Z";
            } else {
                int len = 5 - suffix.length();
                String temp = "";
                temp += suffix.substring(0, suffix.length() - 1);
                for (int i = 0; i < len; i++) {
                    temp += "0";
                }
                suffix = temp + "Z";
            }
            text = prefix + suffix;
        } else {
            text = text.substring(0, text.length() - 1) + ".000Z";
        }
        Date date = sdf.parse(text);
        return date;
    }

}

 

以上是关于java UTC时间格式化的主要内容,如果未能解决你的问题,请参考以下文章

java UTC时间格式化

在java里面,如何得到UTC时间, 时间格式为:Tue Oct 12 00:00:00 UTC 0800 2010

在java里面,如何得到UTC时间, 时间格式为:Tue Oct 12 00:00:00 UTC 0800 2010

java中utc时间怎么转换为本地时间?

为 Blogger 上的博客格式化代码片段 [关闭]

iOS日期转换之UTC/GMT时间格式