Android-获取日期时间Calendar与date


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class TimeUtil {

    public static String getCurrentTime() {
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 设置北京时区
        return sdf.format(d);
    }

}

注意:

h:12小时制小时数
H:24小时制小时数



import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Created by Administrator on 2017/5/8.
 */
public class GetTime {

    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);//Mon May 08 14:27:44 CST 2017
        System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date));//2017-05-08 02:27:44

        long millis = System.currentTimeMillis();
        System.out.println(millis);//1494224864479
        System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(millis));//2017-05-08 02:27:44

		//yyyy-MM-dd   E    hh:mm:ss.sss
		//年-月-日     星期   时:分:秒.毫秒
        System.out.println(new SimpleDateFormat("yyyy-MM-dd E hh:mm:ss.sss").format(date));//2017-05-08 星期一 02:27:44.044
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss").format(date));//2017-05-08 14:27:44.044
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));//2017-05-08 14:27:44
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(date));//2017-05-08 14:27
        System.out.println(new SimpleDateFormat().format(date));//17-5-8 下午2:27 :默认

        compareDataToNow("2017-05-03 12:45:00");

        try {
            Date date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2017-05-03 12:45:00");
            compareToNowDate(date1);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        getWeek();
        getTime1();
        getTime2();
    }


    static void getTime1() {
        long time = System.currentTimeMillis();
        //long now = android.os.SystemClock.uptimeMillis();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d1 = new Date(time);
        String t1 = format.format(d1);
        System.out.println("SimpleDateFormat时间===" + t1);//2017-05-08 12:44:10

        SimpleDateFormat f4 = new SimpleDateFormat("今天是" + "yyyy年MM月dd日 E kk点mm分");
        System.out.println("f4======" + f4.format(new Date()));//今天是2017年05月08日 星期一 14点15分

        SimpleDateFormat f3 = new SimpleDateFormat("今天是" + "hh小时mm分钟");
        System.out.println("f3======" + f3.format(new Date()));//今天是02小时15分钟

        SimpleDateFormat f2 = new SimpleDateFormat("今天是" + "kk点mm分钟");
        System.out.println("f2======" + f2.format(new Date()));//今天是14点17分钟
    }

    static void getTime2() {
        Calendar calendar = Calendar.getInstance();
        String created = calendar.get(Calendar.YEAR) + "年"
                + (calendar.get(Calendar.MONTH) + 1) + "月"//从0计算
                + calendar.get(Calendar.DAY_OF_MONTH) + "日"
                + calendar.get(Calendar.HOUR_OF_DAY) + "时"
                + calendar.get(Calendar.MINUTE) + "分" + calendar.get(Calendar.SECOND) + "s";
        System.out.println("Calendar时间====" + created);//时间:2017年5月8日12时33分24s
    }

    static void getWeek() {
        Calendar calendar = Calendar.getInstance();
        int day = calendar.get(Calendar.DAY_OF_WEEK);
        String today = null;
        if (day == 2) {
            today = "Monday";
        } else if (day == 3) {
            today = "Tuesday";
        } else if (day == 4) {
            today = "Wednesday";
        } else if (day == 5) {
            today = "Thursday";
        } else if (day == 6) {
            today = "Friday";
        } else if (day == 7) {
            today = "Saturday";
        } else if (day == 1) {
            today = "Sunday";
        }
        System.out.println("Today is:- " + today);//Today is:- Monday
    }

    //计算日期之间相隔几天:
    static long compareDataToNow(String date) {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date passDate, nowDate;
        long diff = -100l, days = -100l;

        try {
            passDate = sdf.parse(date);

            String nowStr = sdf.format(new Date());
            nowDate = sdf.parse(nowStr);

            diff = passDate.getTime() - nowDate.getTime();//long型的毫秒数
            days = diff / (1000 * 60 * 60 * 24);
            System.out.println("相隔:" + days + "天" + " nowDate.getTime()=====" + nowDate.getTime());//-5天
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return diff;
    }

 //计算日期之间相隔几天:
    static long compareToNowDate(Date date) {
        long diff = -100l, days = -100l;

        Date nowDate = new Date();

        diff = date.getTime() - nowDate.getTime();//long型的毫秒数
        days = diff / (1000 * 60 * 60 * 24);
        System.out.println("相隔:" + days + "天" + " nowDate.getTime()=====" + nowDate.getTime());//-5天

        return diff;
    }
}


calender的set与add区别:

@SuppressLint("SimpleDateFormat") SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Calendar calendar0 = Calendar.getInstance();//当前时间
String date0 = format.format(calendar0.getTime());
System.out.println("date0===========" + date0);//date0===========2019-02-27 10:14:31


Calendar calendar1 = Calendar.getInstance();
calendar1.add(Calendar.DAY_OF_MONTH, 2);//add表示在默认的当前日期上加两天,(即:过两天的日期)
String date1 = format.format(calendar1.getTime());
System.out.println("date1===========" + date1);// date1===========2019-03-01 10:14:31

Calendar calendar2 = Calendar.getInstance();
calendar2.set(Calendar.DAY_OF_MONTH, 2);//set表示直接将日期设置为本月2号(即:本月的二号)
String date2 = format.format(calendar2.getTime());
System.out.println("date2===========" + date2);//date2===========2019-02-02 10:14:31

获取日历日期

@SuppressLint("SimpleDateFormat") SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

Calendar calendar0 = Calendar.getInstance();//当前时间
String date0 = format.format(calendar0.getTime());
System.out.println("当前时间是:===========" + date0);//2019-02-27 10:36:11


Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);//本月1号日期
System.out.println("set时间是:=======" + format.format(calendar.getTime()));//2019-02-01 10:36:11
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("dayOfWeek===============" + dayOfWeek);//6 :本月1号日期为本周第六天
int preDay = dayOfWeek - 1;
System.out.println("get时间是:=======" + preDay);//5
calendar.add(Calendar.DAY_OF_MONTH, -preDay);//倒退5天的日期,即为日历显示的第一天日期
System.out.println("add时间是:=======" + format.format(calendar.getTime()));//2019-01-27 10:36:11

ArrayList<Date> cells = new ArrayList<>();
int maxCellCount = 6 * 7;//显示的日期总个数
while (cells.size() < maxCellCount) {
    cells.add(calendar.getTime());
    //2019-01-27 10:36:11  到  2019-03-09 10:36:11  总计42个
    System.out.println("遍历cells时间是:=======" + format.format(calendar.getTime()));
    calendar.add(Calendar.DAY_OF_MONTH, 1);
}

在这里插入图片描述

当天、当年判断

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {
    public static String getTime(String dateStr) {
        System.out.println("需要判断的日期:==============" + dateStr);
        String resultTime = dateStr;

        Calendar calendar = Calendar.getInstance();
        int currentYear = calendar.get(Calendar.YEAR);
        int currentMonth = calendar.get(Calendar.MONTH) + 1;
        int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("当前年year======================" + currentYear);
        System.out.println("当前月month====================" + currentMonth);
        System.out.println("当前日期day=====================" + currentDay);

        Date date = str2Date(dateStr);
        calendar.setTime(date);

        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("测试year======================" + year);
        System.out.println("测试month====================" + month);
        System.out.println("测试day=====================" + day);

        if (currentYear == year) {//当年
            if (currentMonth == month && currentDay == day) {//当天
                resultTime = date2Str(date, "HH:mm");
                String resultTime1 = date2Str(date, "H:mm");
                String resultTime2 = date2Str(date, "HH:mm:ss");
                System.out.println("resultTime==========" + resultTime);
                System.out.println("resultTime1==========" + resultTime1);
                System.out.println("resultTime2==========" + resultTime2);
            } else {
                resultTime = date2Str(date, "MM-dd");//不是当天
            }
        } else {
            resultTime = date2Str(date, "yyyy-MM-dd");//不是当年
        }
        return resultTime;
    }

    public static String date2Str(Date date, String s) {
        SimpleDateFormat dateFormat = new SimpleDateFormat(s);
        return dateFormat.format(date);
    }

    public static Date str2Date(String dateStr) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return format.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值