Java中如何处理时间才好

SunnyLife123 发布于 2013/06/16 09:32
阅读 1K+
收藏 5
Java开发中经常遇到时间,比如生日、生产日期之类的,我们到底该如何处理时间比较好呢?是将bean中的时间设置为Date类型,数据库中也设置为日期类型。 还是bean中设置为String,数据库中也设置为String,要用到的时候再将String转换为Date类型的比较好呢?求大虾指点迷津。
加载中
0
优雅先生
优雅先生

生产环境中数据库的表中时间一般以int(11)存储,即Unix时间戳。bean中也是int。然后用的时候根据要求进行转换。

使用int(11)的好处是:节省存储、定长能加快搜索、整型在比较上比字符串更快(从而索引查找也更快)...

就像IP地址一般也不直接用String类型存在表中,而是用int存在数据库中一样。

LianyouCQ
LianyouCQ
回复 @jxqlovedn : 你误会了,我开始写回复时,没有看到你的回复,刷新问题哈。我看了你回复,很好。
优雅先生
优雅先生
回复 @Lee-Jane : 是的,我没有说不可以,http://javis163.iteye.com/blog/1727579
优雅先生
优雅先生
回复 @sisyphus : 再补充一点我认为时间存成Unix时间戳的优点:方便在不同数据库间进行数据迁移,整型迁移还是很容易的,而DateTime在不同类型的数据库下可能不太一样。
LianyouCQ
LianyouCQ
ip地址是可以转为整数的,如MySQL就有INNET_ATON()函数如:INET_ATON('192.168.1.1');
优雅先生
优雅先生
回复 @sisyphus : Unix时间戳的单位是秒。IP地址存成int,没有唯一答案(根据场景选择),你可以参考 http://www.cnblogs.com/skynet/archive/2011/01/09/1931044.html
下一页
0
lxbzmy
lxbzmy
int date string 都有使用的 存储成int 和date需要格式转换。存储成string就不用转换了。有时候在使用一些library的时候日期转换很头疼。
0
喜之郎
喜之郎
最佳实践:如果在数据库都保存成String类型,那数据库就不会存在Date类型。实际上任何数据信息都可以保存成String类型,但是为了程序处理逻辑运算方便,例如求两个时间差,时间列排序等。能保存成Date类型就保存成Date类型,代码处理也按Date处理。不到页面显示的那一刻,不要转成String。
0
震秦
震秦

建议保存成Date/Timestamp类型.

如果是Date类型,在数据库等可以直接利用一些函数参与计算.如果是字符串, 可想而知了.

如果是数字类型, 也能计算,但很多转换还需要自己做. 

0
lateron
lateron

1.date,方便转换、计算

2.时间戳,便于处理时区不同而导致的时间不同。

0
幸福2胖纸
幸福2胖纸
存成datetime类型,代码中用long型进行处理啊,使用的时候format一下就ok啦〜
0
魔力猫
魔力猫
Date类型。如果认为现在的Java时间API不好用可以尝试一下Java8新时间API的原型。如果用非Date类型保存时间,那么就会有大量的转换工作要处理,很可能得不偿失。
0
EthanYang
EthanYang
TimeStamp。so easy
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部