繁体   English   中英

转换 Unix 纪元时间

[英]Convert Unix epoch time

我正在尝试使用时区将 Unix 纪元时间转换为 ISO 8601 ( https://en.wikipedia.org/wiki/ISO_8601 )。 我让它工作,但前提是它是当地时间。 如何将时区作为偏移量传递?

输入1: 1483772400000

输入2: -0700 (但我可以根据需要进行转换)

所需的 output: 2017-01-07T00:00:00-07:00或只是2017-01-07T00:00:00-07

当前 output: 2017-01-06 23:00:00-08我在 PST

我正在使用 IntelliJ IDEA,JDK 1.8u202。

    package util.date;
    
    import java.util.Date;
    import java.util.Locale;
    import java.util.TimeZone;
    import java.text.SimpleDateFormat;
    
    public class EpochToISO {
        public String epochToIso8601(long time) {
            String format = "yyyy-MM-dd HH:mm:ssX";
            SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
            sdf.setTimeZone(TimeZone.getDefault());
            return sdf.format(new Date(time));
        }
    
        public static void main(String[] args) {
            EpochToISO convert = new EpochToISO();
            long epoch = 1483772400000; // Example
            String iso8601 = convert.epochToIso8601(epoch);
            System.out.println(epoch + " -> " + iso8601);
        }
    }

TimeZone.getDefault()用于获取执行代码的主机的TimeZone 您可以提供要获取其日期时间的 TimeZone。 前任:

TimeZone timeZone = TimeZone.getTimeZone("America/Creston"); 
sdf.setTimeZone(timeZone);

具有 GMT/UTC 偏移量的时区https://code2care.org/pages/java-timezone-list-utc-gmt-offset

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM