我从纪元时间开始有几秒钟,并希望将其转换为Day-Month-Year HH:MM
我尝试过以下但是它给了我错误的价值.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(seconds*1000);
String dateString = calendar.get(Calendar.DAY_OF_WEEK) + ", "+.......
Run Code Online (Sandbox Code Playgroud)
上面的代码不正常我在这里做错了什么.
例如,如果seconds = 1299671538
那样它会生成时间字符串,Friday, December 12, 1969因为它应该显示错误Wednesday, March 09, 2011
Ido*_*lon 17
例如,如果秒= 1299671538,则它会生成时间字符串,如1969年12月12日星期五,这是错误的应该显示在2011年3月9日星期三
你有整数溢出.只需使用以下内容(1000常量后注意"L"):
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(seconds*1000L);
String dateString = calendar.get(Calendar.DAY_OF_WEEK) + ", "+.......
Run Code Online (Sandbox Code Playgroud)
或者更好地使用SimpleDateFormat类:
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMMM d, yyyy HH:mm");
String dateString = formatter.format(new Date(seconds * 1000L));
Run Code Online (Sandbox Code Playgroud)
这将为您提供原始秒输入的以下日期字符串:
Wednesday, March 9, 2011 13:52
小智 5
你需要使用
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
Run Code Online (Sandbox Code Playgroud)
代替
Calendar cal = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)
因为从秒开始的 UTC 时间取决于时区。
| 归档时间: |
|
| 查看次数: |
17154 次 |
| 最近记录: |