一:效果图
二:实现步骤
1:引用module,等会该module我会上传的,下载引用就行了
2:a:全局变量
private TimePickerView pvTime;//时间选择器
b:实例化
pvTime = new TimePickerView(this, TimePickerView.Type.YEAR_MONTH_DAY);
//时间选择后回调
pvTime.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date) {
//赋值文本框
edit_yxq.setText(getTime(date));//getTime方法为格式化时间
}
});
c:点击事件触发弹框
//第一个参数(当前时间前n年)第二个参数(当前时间后n年)
pvTime.setRange(DateUtils.getCurrentYear() - 5, DateUtils.getCurrentYear()+20);
pvTime.setTime(new Date());
pvTime.setCyclic(false);
pvTime.show();
d:格式化显示时间
/**
* 格式化显示时间
*
* @param date
* @return
*/
public static String getTime(Date date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
return format.format(date);
}
e:工具类代码
package com.mago.sports.ui;
import android.util.Log;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Created by :caoliulang
* ❤
* Creation time :2022/8/31
* ❤
* Function :
*/
public class DateUtils {
private static SimpleDateFormat sdf;
int type = -1;
public DateUtils() {
sdf = new SimpleDateFormat("yyyy-MM-dd");
}
public DateUtils(int i) {
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
this.type = i;
}
public static long getStringToDate(String dateString) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
try {
date = dateFormat.parse(dateString);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return date.getTime();
}
//获取当前日期
public String getToday() {
Date d = new Date();
String date = sdf.format(d);
return date;
}
public static String getRetureDay() {
Date date = new Date();
SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日");
return f.format(date);
}
public static String getRetureDayt() {
Date date = new Date();
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
return f.format(date);
}
public static String getRetureDaytcll() {
Date date = new Date();
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM");
return f.format(date);
}
//截取本月
public int getCurrentMonth() {
Date d = new Date();
String t = sdf.format(d);
String[] strs = t.split("-");
int m = Integer.valueOf(strs[1]);
Log.e("LOG", d.toString());
return m;
}
//截取本年
public static int getCurrentYear() {
Date d = new Date();
sdf = new SimpleDateFormat("yyyy-MM-dd");
String t = sdf.format(d);
String[] strs = t.split("-");
int y = Integer.valueOf(strs[0]);
return y;
}
public int getCurrenDay() {
Date d = new Date();
String t = sdf.format(d);
String[] strs = t.split("-");
int m = Integer.valueOf(strs[2]);
int day = Integer.valueOf(strs[2]);
return day;
}
//获取昨天的日期
public String getDateOfYesterday() {
Calendar c = Calendar.getInstance();
long t = c.getTimeInMillis();
long l = t - 24 * 3600 * 1000;
Date d = new Date(l);
String s = sdf.format(d);
return s;
}
//获取上个月的第一天
public String getFirstDayOfLastMonth() {
String str = "";
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1); //set the date to be 1
lastDate.add(Calendar.MONTH, -1);//reduce a month to be last month
// lastDate.add(Calendar.DATE,-1);//reduce one day to be the first day of last month
str = sdf.format(lastDate.getTime());
return str;
}
// 获取上个月的最后一天
public String getLastDayOfLastMonth() {
String str = "";
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1);//
lastDate.add(Calendar.MONTH, -1);//
lastDate.roll(Calendar.DATE, -1);//
str = sdf.format(lastDate.getTime());
return str;
}
//获取本月第一天
public String getFirstDayOfThisMonth() {
String str = "";
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1);//
// lastDate.add(Calendar.MONTH,-1);//
// lastDate.add(Calendar.DATE,-1);//
str = sdf.format(lastDate.getTime());
return str;
}
//获取本月最后一天
public String getLastDayOfThisMonth() {
String str = "";
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE, 1);//
lastDate.add(Calendar.MONTH, 1);//
lastDate.add(Calendar.DATE, -1);//
str = sdf.format(lastDate.getTime());
return str;
}
//判断闰年
public static boolean isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
}
return false;
}
//获取传入的时间字符串的年
public int getYear(String s) {
try {
Date date = sdf.parse(s);
return date.getYear();
} catch (ParseException e) {
e.printStackTrace();
return 0;
}
}
/**
* 获取传入的时间字符串的月
*
* @param s
* @return
*/
public int getMonth(String s) {
String[] strs = s.split("-");
// Log.e("LOG",strs[1]);
return Integer.valueOf(strs[1]);
}
public int getDay(String s) {
String[] strs = s.split("-");
if (type == -1) {
try {
return Integer.valueOf(strs[2]);
} catch (Exception e) {
String[] sp = strs[2].split(" ");
return Integer.valueOf(sp[0]);
}
} else {
String[] sp = strs[2].split(" ");
return Integer.valueOf(sp[0]);
}
}
/**
* 获取字符串中的小时
*
* @param s 字符串
* @return 小时(24小时制)
*/
public int getHours(String s) {
Log.e("LOG", s);
String[] strs = s.split(":");
return Integer.valueOf(strs[0]);
}
public int getWeek(String s) {
try {
Date d = sdf.parse(s);
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
int intWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
return intWeek;
} catch (ParseException e) {
e.printStackTrace();
return -1;
}
}
public String week(String s) {
try {
Date d = sdf.parse(s);
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
int intWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
String we = "";
switch (intWeek) {
case 0:
we = "周日";
break;
case 1:
we = "周一";
break;
case 2:
we = "周二";
break;
case 3:
we = "周三";
break;
case 4:
we = "周四";
break;
case 5:
we = "周五";
break;
case 6:
we = "周六";
break;
}
return we;
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
public static String getSpecifiedDayBefore(String specifiedDay) {
//SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
return dayBefore;
}
}
f:导入module有的会如下错误
Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'com.github.dcendents.android-maven' not found.
g:解决办法(在根目录build.gradle的dependencies下添加如下代码)
//1.自动化maven打包插件
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
//2.自动上传至Bintray平台插件
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
module下载地址链接:pickerview.zip_android滚动选择时间-互联网文档类资源-优快云下载