我搜索了有关格式化时间的主题,但这些都是关于Date类或DateTime的。我正在使用Time类。我创造了时间:
Time time = new Time(Time.getCurrentTimezone()) ;
time.setToNow();
String berkay = time.toString();
System.out.println(berkay);
当我执行它时,输出是:
20130417T070525GMT(3,106,0,0,1366182325)
实际上日期和时间是正确的(2013-04-17 07:05:25)
但我需要将其转换为:20130417070525(我这样做的原因是我会根据日期搜索数据库,因此更容易比较该格式的时间)
我该如何转换它?
答案 0 :(得分:2)
试试这个:
Time time = new Time(System.currentTimeMillis()) ;
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String date = df.format(time).toString();
System.out.println(date);
修改强>
但 smttsp 建议将其存储为时间戳更有效
答案 1 :(得分:1)
要将java.util.Date转换为String,您应该考虑java.text.SimpleDateFormat。
对于使用java.util.Date作为数据库查询的参数,您应该按原样传递Date,而不将其转换为任何其他格式。
passing Date parameter to create date range query < - 在答案中有示例如何创建此类查询。
答案 2 :(得分:0)
有点晚了但是如果你正在按时工作并且需要进行比较或排序,最好的方法是使用Unix时间戳。它从 1-Jan-1970 00:00:00 开始,每秒递增1。
它是一个长值(64位),在时间和空间上都非常有效。 Here是Unix时间戳转换的网站。
20130417070525也是14个字符串(至少15个字节,我猜)和1366182325长(8个字节)。所以追求长期价值。你可以这样得到它
Date myDate = new Date(); // current time
myDate.getTime(); // converts it to specified format.