一、效果图
本文提供了 Android 自带日期选择器(DatePicker和DatePickerDialog)、时间选择器(TimePicker和TimePickerDialog)的简单使用方法, 完整代码收录在GitHup项目中,
地址: https://github.com/GinGod/BasisDependency ,相关类 BasisTimesUtils.java 和DateTimePickerActivity.java ,
因使用比较简单, 本文只是给出效果图和工具类代码,具体逻辑可自行参考注释理解。
具体效果图如下:
1、年月日选择器
2.年月选择器
3、月日选择器
4、时间选择器
5、嵌套在布局中
二、使用工具类
提供了一个工具类, 里面包含了 DatePickerDialog 和 TimePickerDialog 的简单使用, 可自定义设置背景, 标题, 不显示年或日等package com.gingold.basislibrary.utils;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.NumberPicker;
import android.widget.TimePicker;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* time 工具类
*/
public class BasisTimesUtils {
public static int THEME_DEVICE_DEFAULT_LIGHT = AlertDialog.THEME_DEVICE_DEFAULT_LIGHT;
public static int THEME_DEVICE_DEFAULT_DARK = AlertDialog.THEME_DEVICE_DEFAULT_DARK;
public static int THEME_TRADITIONAL = AlertDialog.THEME_TRADITIONAL;
public static int THEME_HOLO_LIGHT = AlertDialog.THEME_HOLO_LIGHT;
public static int THEME_HOLO_DARK = AlertDialog.THEME_HOLO_DARK;
private static DatePickerDialog mDatePickerDialog;//日期选择器
/**
* 将字符串时间转为Long时间
*
* @param time yyyy-MM-dd HH:mm:ss:SSS
*/
public static Long getLongTimeOfSSS(String time) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date date = sdf.parse(time);
return date.getTime();
} catch (Exception e) {
}
return 0L;
}
/**
* 将字符串时间转为Long时间
*
* @param time yyyy-MM-dd HH:mm:ss
*/
public static Long getLongTime(String time) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(time);
return date.getTime();
} catch (Exception e) {
}
return 0L;
}
/**
* 将字符串时间转为Long时间
*
* @param time yyyy-MM-dd
*/
public static Long getLongTimeOfYMD(String time) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(ti