微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 将时间戳长度转换为正常的日期格式

在我的网络应用程序中,将用户的某些活动的时间作为时间戳存储在数据库中(在数据库中)被显示用户需要转换为正常的日期/时间格式.

(实际上,我的数据库Cassandra存储一个列被写入时间戳的长度值(自1970年以来的微秒),我将用它来查找相应的用户活动的时间)

我正在使用JSF 2.0(键盘),我相信有转换器可能有助于这种转换?否则如何才能最大限度地实现这些转化?

解决方法

让我为你提出这个解决方案.所以在你的托管bean中,这样做
public String convertTime(long time){
    Date date = new Date(time);
    Format format = new SimpleDateFormat("yyyy MM dd HH:mm:ss");
    return format.format(date);
}

所以在你的JSF页面中,你可以这样做(假设foo是包含你的时间的对象)

<h:dataTable value="#{myBean.convertTime(myBean.foo.time)}" />

如果您有多个页面要使用此方法,可以将其放在抽象类中,并让您的托管bean扩展此抽象类.

编辑:使用TimeZone返回时间

不幸的是,我认为SimpleDateFormat将始终格式化本地时间,所以我们可以使用SimpleDateFormat了.所以要在不同的时区显示时间,我们可以做到这一点

public String convertTimeWithTimeZome(long time){
    Calendar cal = Calendar.getInstance();
    cal.setTimeZone(TimeZone.getTimeZone("UTC"));
    cal.setTimeInMillis(time);
    return (cal.get(Calendar.YEAR) + " " + (cal.get(Calendar.MONTH) + 1) + " " 
            + cal.get(Calendar.DAY_OF_MONTH) + " " + cal.get(Calendar.HOUR_OF_DAY) + ":"
            + cal.get(Calendar.MINUTE));

}

更好的解决方案是利用JodaTime.在我看来,这个API比Calendar更好(更轻,更快,提供更多的功能).加上Calendar.Month在1月是0,强制开发者添加1的结果,你必须自己格式化时间.使用JodaTime,您可以修复所有这些.纠正我,如果我错了,但我认为JodaTime被并入JDK7

原文地址:https://www.jb51.cc/java/125678.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐