1、获取当前年月日
Calendar cal = Calendar.getInstance();
//获取当前年
int currentYear = cal.get(Calendar.YEAR);
//获取当前月
int currentMonth = cal.get(Calendar.MONTH) + 1;
// 获取当前日
int day = calenedar.get(Calendar.DATE);
// 获取当前小时
int hour = calendar.get(Calendar.HOUR_OF_DAY);
// 获取当前分钟
int minute = calendar.get(Calendar.MINUTE);
// 获取当前秒
int second = calendar.get(Calendar.SECOND);
// 获取当前是本周第几天
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 获取当前是本月第几天
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
// 获取当前是本年第几天
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
2、时间戳格式化
//当前时间的时间戳
long start = System.currentTimeMillis();
//将时间戳转换为 yyyy-MM-dd HH:mm:ss 格式的字符串
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format.format("时间戳");
3、根据当前时间戳获取当前时间的时分值
SimpleDateFormat formater_hour = new SimpleDateFormat("HH");
SimpleDateFormat formater_minute = new SimpleDateFormat("mm");
Date date = new Date(System.currentTimeMillis());
int cur_hour = Integer.valueOf(formater_hour.format(date));
int cur_minute = Integer.valueOf(formater_minute.format(date));
4、获取指定年月的月第一天和最后一天的时间戳
/**
* 获取指定年月的第一天和最后一天的时间戳
* @param year
* @param monthOfYear
* @return
*/
public static long getSupportBeginDayofMonth(int year, int monthOfYear) {
Calendar cal = Calendar.getInstance();
// 不加下面2行,就是取当前时间前一个月的第一天及最后一天
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//月最后一天的时间戳
cal.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = cal.getTime();
//月第一天的时间戳
cal.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = cal.getTime();
return firstDate.getTime();
}
5、获取当前时间的上个月同一时间的日期
例子:
当前时间是:2023-10-20 14:42:46 一个月前时间是:2023-09-20 14:42:46
//计算最近一个月的起始时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeTo = format.format(new Date());
String timeFrom = format.format(stepMonth(new Date(),-1));
Log.d("mylog_finished_product","当前时间是:"+timeTo+" 一个月前时间是:"+timeFrom);
/**
* 给定日期加上或减去指定月份后的日期
* @param sourceDate 原始时间
* @param month 要调整的月份 时间向前为负数,向后为正数
* @return
*/
public static Date stepMonth(Date sourceDate, int month) {
Calendar c = Calendar.getInstance();
c.setTime(sourceDate);
c.add(Calendar.MONTH, month);
return c.getTime();
}