nex*_*490 25 java android epoch
我已经多次看到这个问题了,没有一个答案似乎是我需要的.
我有一个长型变量,其中存储了一个纪元时间.
我想要做的是将其转换为String
例如,如果存储的纪元时间是今天的最终字符串将读取:
17/03/2012
我怎么会这样?
Rei*_*ard 34
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
sdf.format(new Date(myTimeAsLong));
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 23
你会创建一个Date
从long
-这很容易:
Date date = new Date(epochTime);
Run Code Online (Sandbox Code Playgroud)
请注意,epochTime
从纪元开始应该是以毫秒为单位 - 如果你从纪元开始有秒,则乘以1000.
然后你创建一个SimpleDateFormat
指定相关模式,文化和时区的东西.例如:
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
format.setTimeZone(...);
Run Code Online (Sandbox Code Playgroud)
然后使用它将日期格式化为字符串:
String text = format.format(date);
Run Code Online (Sandbox Code Playgroud)
Dam*_*oda 17
Date date = new Date(String);
Run Code Online (Sandbox Code Playgroud)
这是不推荐使用的.
解
Date date = new Date(1406178443 * 1000L);
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
format.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
String formatted = format.format(date);
Run Code Online (Sandbox Code Playgroud)
确保乘以1000L
如果该方法应该是可移植的,最好使用默认值(当地时间)TimeZone.getDefault()
:
String epochToIso8601(long time) {
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault());
sdf.setTimeZone(TimeZone.getDefault());
return sdf.format(new Date(time * 1000));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
72035 次 |
最近记录: |