仿微信朋友圈动态的时间显示

package com.time.zz.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity {
    private  String startime="2016-11-09 16:14:35";//初始时间.初始时间是固定不变的,随着系统当前时间的变化,发布时间自然就变成了1分钟前,1小时前,一天前...
    //private  String startime="2016-11-08 16:14:35";
    //private  String startime="2016-11-07 16:14:35";
  // private  String startime="2016-11-06 16:14:35";
   // private  String startime="2016-10-06 16:14:35";
    private TextView tv_time;
    private long formattingtime;
    private long TimeCha;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_time= (TextView) findViewById(R.id.tv_time);
        timecha(startime);

    }

    private String timecha(String startime) {
        Calendar calendar=Calendar.getInstance();
        SimpleDateFormat dataformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long currenttime = calendar.getTimeInMillis();//获取系统当先时间的毫秒值
        Log.i("作者测试时间的毫秒值",currenttime+"");
        try {//如果你的初始时间是格式化过的,则需要先转化成毫秒值
            formattingtime = dataformat.parse(startime).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
//这里需要注意,因为获取的时间因为时差的缘故已经自动加上了8小时的时间,所以这里需要减去.如果不减去,就算是你刚刚发布的动态也会显示是8小时之前
        TimeCha =((currenttime-formattingtime)/1000)-(8*60*60);//将毫秒值转化成分钟数
        StringBuffer str=new StringBuffer();
        if (TimeCha>0&TimeCha<60){
            String just = str.append("刚刚").toString();
            tv_time.setText(just);
            Log.i("shijian",just);

        }else if (TimeCha>=60&&TimeCha<3600){
            String minute = str.append(TimeCha / 60 + "分钟前").toString();
            tv_time.setText(minute);

        }else if (TimeCha>=3600&&TimeCha<3600*24){
            String hour = str.append(TimeCha / 3600 + "小时前").toString();
            tv_time.setText(hour);

        }else if (TimeCha>=3600*1*24&&TimeCha<3600*2*24){
            String day1 = str.append("1天前").toString();
            tv_time.setText(day1);

        }else if (TimeCha>=3600*2*24&&TimeCha<3600*3*24){
            String day2 = str.append("2天前").toString();
           tv_time.setText(day2);

        }else if (TimeCha>=3600*3*24&&TimeCha<3600*4*24){
            String day3 = str.append("3天前").toString();
            tv_time.setText(day3);
        }else if (TimeCha>=3600*8*24){
           tv_time.setText(startime);
        }
        return startime;
    }


}

猜你喜欢

转载自blog.csdn.net/qq_34772082/article/details/53101676