Android贴吧系统学习-----对时间的处理方法

来源:互联网 发布:长征知识知多少 编辑:程序博客网 时间:2024/06/03 22:39

1.需要做类似贴吧系统,必须要知道当前的帖子是几秒前发出的,还是几分前,几小时前,以及标准时间

对时间需要专门处理一个函数:

public class TimeHandler {public TimeHandler() {}@SuppressLint("SimpleDateFormat")public String handle(String time) {// 解析时间String result = "";Long current = System.currentTimeMillis();Long millionTime = Long.parseLong(time);Long delta = current - millionTime;if ((delta / 1000) / 60 < 1) {if ((delta / 1000) / 60 == 0)result = "2秒前";elseresult = (delta / 1000) + "秒前";} else {if ((delta / 1000) / 60 < 60)result = (delta / 1000) / 60 + "分前";else {if ((delta / 1000) / 3600 < 24)result = (delta / 1000) / 3600 + "小时前";else {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");Date date = new Date(millionTime);result = formatter.format(date);}}}return result;}}


System.currentTimeMillis()产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数,

Date()其实就是相当于Date(System.currentTimeMillis());

因为Date类还有构造Date(long date),用来计算long秒与1970年1月1日之间的毫秒差。


得到了这个毫秒数,我们自己也可以算起现在的年月日周时,但是这不是我们去计算的,因为有Calendar。

Calendar最终出的结果就是年月日周时时区。


System.currentTimeMillis() 获得的是自1970-1-01 00:00:00.000 到当前时刻的时间距离,类型为long


String.valueOf(System.currentTimeMillis()) 这个语句可转为以下的型式:
long ct = System.currentTimeMillis();


String t = String.valueOf(ct);
其实上面的String t就相当于 ct+"";只是转为字符串格式


public String refFormatNowDate() {
  Date nowTime = new Date(System.currentTimeMillis());
  SimpleDateFormat sdFormatter = new SimpleDateFormat("yyyy-MM-dd");
  String retStrFormatNowDate = sdFormatter.format(nowTime);

  return retStrFormatNowDate;
}



0 0
原创粉丝点击