如何将日期转换为UTC

3

我需要将日期格式更改为UTC格式。

File file = new File();

...

file.lastModified();

我需要将文件的lastModified日期转换为UTC格式。


1
你能解释一下为什么你需要这个吗?通常时区格式化只是一个格式化问题,例如当你向用户显示东西时。但是你要么想使用当前系统语言环境,要么使用用户指定的语言环境,但很少使用固定的时区,比如UTC。请注意,时间戳与时区无关。它只是自纪元以来的毫秒数。 - Puce
正如Erik所说,日期已经是UTC时间。你需要做的就是使用所需的TimeZone格式化它。提示:DateFormatSimpleDateFormat - armandino
2个回答

17
String lv_dateFormateInUTC=""; //Will hold the final converted date      
SimpleDateFormat lv_formatter = new SimpleDateFormat(); 
lv_formatter.setTimeZone(TimeZone.getTimeZone("UTC"));  
lv_dateFormateInUTC = lv_formatter.format(lv_localDate); 

类似这样的...!!


6

简单来说:

Date date = new Date(file.lastModified())

这是因为File.lastModified()返回的long值代表自1970年1月1日格林威治标准时间(00:00:00 GMT)以来的毫秒数,详见Javadoc。同样,java.util.Date也是如此。因此它们都已经处于UTC/GMT时区中。当日期被转换为字符串,例如通过Date.toString()DateFormat对象,通常会用本地时区表示,但它存储的long值不依赖于时区。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接