调用Android原生日期选择器对话框也就是DatePickerDialog
package com.example.myapplication;
import android.app.DatePickerDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tv;
private Button but;
private int mYear;
private int mMonth;
private int mDay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
//Activity的onCreate方法中获取当时的年 ,月,日
Calendar calendar = Calendar.getInstance();
mYear = calendar.get(Calendar.YEAR);
mMonth = calendar.get(Calendar.MONTH);
mDay = calendar.get(Calendar.DAY_OF_MONTH);
}
private void initView() {
tv = (TextView) findViewById(R.id.tv);
but = (Button) findViewById(R.id.but);
but.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.but:
//TODO 调用时间选择器
new DatePickerDialog(MainActivity.this, onDateSetListener,mYear,mMonth,mDay).show();
break;
}
}
/**
* 日期选择器对话框监听
*/
private DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
String days;
if (mMonth + 1 < 10) {
if (mDay < 10) {
days = new StringBuffer().append(mYear).append("年").append("0").
append(mMonth + 1).append("月").append("0").append(mDay).append("日").toString();
} else {
days = new StringBuffer().append(mYear).append("年").append("0").
append(mMonth + 1).append("月").append(mDay).append("日").toString();
}
} else {
if (mDay < 10) {
days = new StringBuffer().append(mYear).append("年").
append(mMonth + 1).append("月").append("0").append(mDay).append("日").toString();
} else {
days = new StringBuffer().append(mYear).append("年").
append(mMonth + 1).append("月").append(mDay).append("日").toString();
}
}
tv.setText(days);
}
};
}
获取当前的年月时分:
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = sDateFormat.format(new java.util.Date());
如果想获取当前的年月,则可以这样写(只获取时间或秒种一样):
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");
String date=sdf.format(new java.util.Date());
当然还有就是可以指定时区的时间(待):
df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL, Locale.CHINA);
System.out.println(df.format(new Date()));
计算时差
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date d1 = df.parse("2006-05-26 12:00:00");
Date d2 = df.parse("2006-07-02 11:20:00");
//Date d2 = new Date(System.currentTimeMillis());//你也可以获取当前时间
long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别
long days = diff / (1000 * 60 * 60 * 24);
long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
// System.out.println(""+days+"天"+hours+"小时"+minutes+"分");
Toast.makeText(this, days+"天"+hours+"小时"+minutes+"分", Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
}