Android中时间、日期的计算方法

来源:互联网 发布:苗阜精神状态知乎 编辑:程序博客网 时间:2024/05/15 15:49

编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/73466836

方法一:使用java.text.SimpleDateFormat进行计算

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import java.text.SimpleDateFormat;import java.util.Date;public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    private Date mDate;    private SimpleDateFormat mSdf;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();    }    public void initView(){        mDate = new Date();        mSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    }    public void initData(){        String today = mSdf.format(mDate);        String yesterday = mSdf.format(new Date(mDate.getTime() - 1 * 24 * 60 * 60 * 1000));        String tomorrow = mSdf.format(new Date(mDate.getTime() + 1 * 24 * 60 * 60 * 1000));        Log.i(TAG , "today:" + today);        Log.i(TAG , "yesterday:" + yesterday);        Log.i(TAG , "tomorrow:" + tomorrow);    }}

方法二:使用java.util.Calendar进行计算

import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import java.util.Calendar;public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    private Calendar mCalendar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initData();    }    public void initData(){        getNow();        getTomorrow();        getYesterday();    }    private void getTomorrow() {        // 从日历类中获取默认时间(即当前时间)        mCalendar = Calendar.getInstance();        int year = mCalendar.get(Calendar.YEAR);        // 按照外国习惯,月份是从0 开始的        int month = mCalendar.get(Calendar.MONTH) + 1;        // 将日期加一,即为明天的时间        mCalendar.set(Calendar.DAY_OF_MONTH , mCalendar.get(Calendar.DAY_OF_MONTH) + 1);        int day = mCalendar.get(Calendar.DAY_OF_MONTH);        int hour = mCalendar.get(Calendar.HOUR_OF_DAY);        int minute = mCalendar.get(Calendar.MINUTE);        int second = mCalendar.get(Calendar.SECOND);        Log.i( TAG , "tomorrow:" + year + "-" + addZero(month + "") + "-" + addZero(day + "") + " " + addZero(hour + "") + ":" + addZero(minute + "") + ":" + addZero(second + ""));    }    private void getYesterday() {        // 从日历类中获取默认时间(即当前时间)        mCalendar = Calendar.getInstance();        int year = mCalendar.get(Calendar.YEAR);        // 按照外国习惯,月份是从0 开始的        int month = mCalendar.get(Calendar.MONTH) + 1;        // 将日期减一,即为昨天的时间        mCalendar.set(Calendar.DAY_OF_MONTH , mCalendar.get(Calendar.DAY_OF_MONTH) - 1);        int day = mCalendar.get(Calendar.DAY_OF_MONTH);        int hour = mCalendar.get(Calendar.HOUR_OF_DAY);        int minute = mCalendar.get(Calendar.MINUTE);        int second = mCalendar.get(Calendar.SECOND);        Log.i( TAG , "yesterday:" + year + "-" + addZero(month + "") + "-" + addZero(day + "") + " " + addZero(hour + "") + ":" + addZero(minute + "") + ":" + addZero(second + ""));    }    public void getNow(){        // 从日历类中获取默认时间(即当前时间)        mCalendar = Calendar.getInstance();        int year = mCalendar.get(Calendar.YEAR);        // 按照外国习惯,月份是从0 开始的        int month = mCalendar.get(Calendar.MONTH) + 1;        int day = mCalendar.get(Calendar.DAY_OF_MONTH);        int hour = mCalendar.get(Calendar.HOUR_OF_DAY);        int minute = mCalendar.get(Calendar.MINUTE);        int second = mCalendar.get(Calendar.SECOND);        Log.i( TAG , "today:" + year + "-" + addZero(month + "") + "-" + addZero(day + "") + " " + addZero(hour + "") + ":" + addZero(minute + "") + ":" + addZero(second + ""));    }    public String addZero(String num){        int length = num.length();        if(length == 1){            return "0" + num;        }        return num;    }}

方法三:使用java.util.GregorianCalendar进行计算

import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class MainActivity extends AppCompatActivity {    private static final String TAG = "MainActivity";    private SimpleDateFormat mSdf;    private GregorianCalendar mGc;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initData();    }    public void initData(){        mSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        mGc = new GregorianCalendar();        getNow();        getTomorrow();        getYesterday();    }    public void getNow(){        mGc.setTime(new Date());        String today = mSdf.format(mGc.getTime());        Log.i(TAG , "today:" + today);    }    public void getYesterday(){        mGc.setTime(new Date());        mGc.add(Calendar.DAY_OF_MONTH , -1);        String yesterday = mSdf.format(mGc.getTime());        Log.i(TAG , "yesterday:" + yesterday);    }    public void getTomorrow(){        mGc.setTime(new Date());        mGc.add(Calendar.DAY_OF_MONTH , +1);        String tomorrow = mSdf.format(mGc.getTime());        Log.i(TAG , "tomorrow:" + tomorrow);    }}

  导包的时候不要导成了android.icu包,要导java包,否则API在minSdkVersion = 24以下无法使用

参考:http://blog.csdn.net/liwenfeng1022/article/details/6534176/


———-因本人才疏学浅,如博客或Demo中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!———-

原创粉丝点击