我们在数据库中存储的间隔(两个oracle时间戳之间的经过时间)为秒,我们使用Java在前端格式化它们。
我们在报告中要实现的是“HH:MM”或“HH:MM:SS”形式的格式,时间分隔符“:”与日期和时间信息一起本地化,即' “。意大利语和英语的“:”。
不幸的是,与日期相关的格式化类(如SimpleDateFormat)不起作用**因为我们可以预期持续时间超过24小时。 我们也不想雇用3rdy party library 。
你知道我们如何解决这个问题吗?
TIA
答案 0 :(得分:2)
如果您想要超过24小时,可以单独打印。
int hour = time / 3600000;
String duration = time + new SimpleDateFormat(":mm:ss").format(new Date(time));
要支持其他语言环境,您可以执行此更复杂的示例。
int hour = time / 3600000;
String duration = hour
+ DateFormat.getDateInstance(DateFormat.MEDIUM, locale)
.format(new Date(time % 3600000).substring(1);
这将使用特定于语言环境的格式作为小时的最后一位数+分钟+秒,并在小时的附加数字前加上。注意:这不适用于负面时间。
答案 1 :(得分:1)
您可以构建一个日期对象,比如" 2000-01-01",然后将秒添加到它。然后,您可以使用它来提取时间的本地化版本:
DateFormat format = DateFormat.getTimeInstance(DateFormat.MEDIUM, locale);
String formatted_time_part = format.format(some_date_object);
最后你还需要添加经过的天数!我担心长间隔(天,月,年,世纪)的本地化在Java中没有相应的API,但我可能错了。所以你必须自己弄明白。