2024.4.9
所花时间:3小时
代码量(行):442行
博客量(篇):1篇
package com.example.myapplication; import android.text.TextUtils; import android.util.Log; import android.view.View; import com.bigkoo.pickerview.view.TimePickerView; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class DateUtils { private static final String TAG="DateUtils"; public interface IOnTimeSelectListener{ void onTimeSelectListener(Date date, View v); } private static TimePickerView pvCustomTime; /** * 日期字符串转10位时间戳 * @param dateStr * @param sdr * @return */ public static long dateStr2Timestamp(String dateStr, SimpleDateFormat sdr) { Date date; long timeStamp=0; try { date = sdr.parse(dateStr); timeStamp= date.getTime()/1000; } catch (Exception e) { e.printStackTrace(); } return timeStamp; } /** * 例:转化为 为yyyy-MM-dd HH:mm:ss 格式 dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); * ============================时间戳转换=========================== * @param createTime 时间戳 10位(字符串) * @return */ public static String getSimpleDateTime(String createTime,SimpleDateFormat dateFormat) { //将服务器换回的String 时间戳转换成long类型数据 if (null==createTime||createTime.isEmpty()){ return ""; } if (createTime.length()!=10){ return createTime; } try { long time = Long.parseLong(createTime); long issueTime = new Date(time * 1000).getTime();//发布时毫秒 String timeStamp = dateFormat.format(new Date(issueTime));//例 yyyy-MM-dd HH:mm:ss 格式 return timeStamp; }catch (NumberFormatException e){ } return createTime; } /** * ============================时间戳转换=========================== * 例:yyyy-MM-dd HH:mm:ss 格式 * @param createTime 时间戳 13位 long * @return */ public static String getSimpleDateTime(long createTime, SimpleDateFormat dateFormat) { if (createTime<=0){ return ""; } if (createTime+"".length()!=13){ return createTime+""; } try { String timeStamp = dateFormat.format(new Date(createTime));//例 yyyy-MM-dd HH:mm:ss 格式 return timeStamp; }catch (NumberFormatException e){ Log.e(TAG, "getSimpleDateTime: "+e.toString() ); } return createTime+""; } /** * 获取日期和星期 * @param timeStamp 时间戳 * @return 2021-01-01 星期三 */ public static String getDateAndWeek(long timeStamp){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd EEEE", Locale.CHINA); String timeStr=""; try { timeStr = sdf.format(timeStamp); } catch (NumberFormatException e) { e.printStackTrace(); } return timeStr; } /** * 获取日期和星期 * @param date * @return 2021-01-01 星期三 */ public static String getDateAndWeek(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd EEEE",Locale.CHINA); return sdf.format(date); } //获取今天是星期几 public static String getWeekOfDate(Date date) { String[] weekDays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"}; Calendar cal = Calendar.getInstance(); cal.setTime(date); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) w = 0; return weekDays[w]; } /** * 获取今天是星期几 * @param time 10位时间戳 * @return */ public static String getWeekOfDate(long time) { Date date=new Date(time*1000); String[] weekDays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"}; Calendar cal = Calendar.getInstance(); cal.setTime(date); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) w = 0; return weekDays[w]; } public static int getYear(){ Calendar calendar=Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); return year; } public static int getMonth(){ Calendar calendar=Calendar.getInstance(); int month = calendar.get(Calendar.MONTH)+1; return month; } public static int getDay(){ Calendar calendar=Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_MONTH); return day; } public static int getHour(){ Calendar calendar=Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); return hour; } public static int getHour(long mills){ Calendar calendar=Calendar.getInstance(); calendar.setTimeInMillis(mills); int hour = calendar.get(Calendar.HOUR_OF_DAY); return hour; } public static int getMinute(){ Calendar calendar=Calendar.getInstance(); int min = calendar.get(Calendar.MINUTE); return min; } public static int getMinute(long mills){ Calendar calendar=Calendar.getInstance(); calendar.setTimeInMillis(mills); int min = calendar.get(Calendar.MINUTE); return min; } public static int getSecond(){ Calendar calendar=Calendar.getInstance(); int sec = calendar.get(Calendar.SECOND); return sec; } public static int getSecond(long mills){ Calendar calendar=Calendar.getInstance(); calendar.setTimeInMillis(mills); int sec = calendar.get(Calendar.SECOND); return sec; } /** * 获取参数时间距今多少天 * @param time 天数 * @return */ public static int getBeforePresentDay(String time){ if (TextUtils.isEmpty(time)){ return 0; } if (time.length()!=10){ return 0; } try { long bTime = Long.parseLong(time)*1000; long dayMills=1000*60*60*24;//一天的毫秒数 long oldHour=getHour(bTime)*60*60*1000; long oldMin=getMinute(bTime)*60*1000; long oldSec=getSecond(bTime)*60*1000; long cTime = System.currentTimeMillis();//当前时间 long vTime=cTime-bTime; long remain=vTime%dayMills;//余数 int count= (int) (vTime/dayMills); // Log.e("cpdd", "getBeforePresentDay: "+oldHour+"***"+oldMin+"***"+oldSec ); if(remain>(dayMills-oldHour-oldMin-oldSec)){ //余数+设置时的时间超过设置时间晚上12点 算一天 count+=1; } return count; }catch (Exception e){ } return 0; } /** * 获取第二年情人节的时间戳 * @return */ public static long getNextValentineDayTimeStamp(){ int year = getYear(); long timestamp = dateStr2Timestamp( (year + 1) + "-02-14", new SimpleDateFormat("yyyy-MM-dd")); return timestamp*1000; } }