编写不易,如有转载,请声明出处: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中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!----------