[英]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.