【发布时间】:2013-02-13 01:58:22
【问题描述】:
我的 MySQL 数据库在我上传记录时插入了时间戳,所以输入的内容类似于 2013-02-02 16:59:29。有没有一种 Java 方法可以将其转换为 10 天前之类的内容?
【问题讨论】:
-
嗯好吧,它们只是标语。冷静。
-
这就是这个网站的组织方式。你已经存在了足够长的时间来了解更多。
我的 MySQL 数据库在我上传记录时插入了时间戳,所以输入的内容类似于 2013-02-02 16:59:29。有没有一种 Java 方法可以将其转换为 10 天前之类的内容?
【问题讨论】:
假设您已将数据库中的日期时间值读入 java:
Date date; // read from database
int days = TimeUnit.MILLISECONDS.toDays(
System.currentTimeMillis() - date.getTime());
然后你可以随意格式化它。
【讨论】:
在结果集的帮助下从mysql中获取时间并将时间数据传递给下面的方法
public static void main(String[] args) {
long timStampFromMysql = rs.getTimestamp("time");// Fetch time from mysql
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(convertTime(timStampFromMysql , 15));
System.out.println(cal);
}
public static long convertTime(long timeInMillies, int days)
{
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timeInMillies);
calendar.add(Calendar.DAY_OF_YEAR, days);
return calendar.getTimeInMillis();
}
【讨论】:
Joda Time 库中的 Days.daysBetween 将为您计算。
DateTime start = new DateTime(time_ms);
DateTime end = new DateTime(now);
Days days = Days.daysBetween(start, end);
int d = days.getDays();
【讨论】: