Android日期时间常规操作

取得当前系统时间毫秒数

long time = System.currentTimeMillis();

格式化当前时间

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datetime = df.format(System.currentTimeMillis())

SimpleDateFormat第二个参数为时区,为了更好的表达时间和国际化,一般很少指定时区。

new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss",Locale.US);

取得当前年 / 月 / 日 / 时 / 分 / 秒

private final Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);// 获取年
int month = calendar.get(Calendar.MONTH);// 获取月
int date = calendar.get(Calendar.DATE);// 获取日
int hour = calendar.get(Calendar.HOUR_OF_DAY);//获取几点

增加天数

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 10); //10为往后推10天,-10为往前推10天

日期比较

比较两个日期先后
if(currentCalendar.after(othCalendar)){
    showInfo("超出日期");
}
计算两个日期相关天数
int days = 0; //定义一个变量来计算相隔天数
while (lmpcalendar.before(curcalendar)){
    lmpcalendar.add(Calendar.DATE, 1);
    days++;
}

实例

取得月份的所有天数

一周的开始为星期天

for (int i = 1; i <= 7; i++) {
    calendar.set(Calendar.DAY_OF_MONTH, 1);
    int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
    if (i == firstDayOfWeek) {
        lstDays.add(new CalendarDay("1", pub.DAY_STATUS_COME, ""));
        break;
    } else lstDays.add(new CalendarDay("", pub.DAY_STATUS_NONE, ""));
}
for (int i = 2; i <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
    lstDays.add(new CalendarDay(String.valueOf(i), pub.DAY_STATUS_NONE, ""));
}

一周的开始为星期一

//设定当前日期为当月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
//取得第一天所在星期的第几天,因为默认第一天为星期天,这里需按中国人的习惯进行单独处理
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
//判断如果第一天为周日,则前面六天全部留空
if(firstDayOfWeek == 0){
    for (int i = 1; i <= 6; i++) {
        lstDays.add(new CalendarDay("", pub.DAY_STATUS_NONE, ""));
    }
    lstDays.add(new CalendarDay("1", pub.DAY_STATUS_COME, ""));
}else { //否则判断周一到周六哪天为第一天
    for (int i = 1; i <= 6; i++) {
        if (i == firstDayOfWeek) {
            lstDays.add(new CalendarDay("1", pub.DAY_STATUS_COME, ""));
            break;
        } else lstDays.add(new CalendarDay("", pub.DAY_STATUS_NONE, ""));
    }
}
for (int i = 2; i <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
    lstDays.add(new CalendarDay(String.valueOf(i), pub.DAY_STATUS_NONE, ""));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值