日期时间相关

java.util.Date类

System.out.println(new Date());  //当前时间
System.out.println(new Date(0)); //1970.01.01 08:00:00(中国时间,标准从0点开始)
Date date = new Date();
long now = date.getTime(); //输入出毫秒数

long hourBefore = now - 3600000;
Date date1 = new Date(hourBefore);  //根据毫秒数构建对象
System.out.println(date1);

System.out.println(date.compareTo(date1)); //比较结果:-1、0、1

java.util.TimeZone类

TimeZone timeZone1 = TimeZone.getDefault();
System.out.println(timeZone1.getDisplayName()); //中国标准时间
System.out.println(timeZone1.getDisplayName(true,1)); //1:中国夏令时, 0:CDT
System.out.println(timeZone1.getDisplayName(true,0, Locale.JAPAN)); //1:中国夏時間, 0:CDT
System.out.println(timeZone1.getDisplayName(Locale.KOREA)); //중국 표준시
System.out.println(timeZone1.getID());  //Asia/Shanghai

TimeZone timeZone2 = TimeZone.getTimeZone("GMT+:01:00");
System.out.println(timeZone2.getDSTSavings());

TimeZone timeZone3 = TimeZone.getTimeZone("Europe/London");  //通过时区id构建对象
System.out.println(timeZone3.getDSTSavings()); //本地标准时间上的 时间量 ,以得到挂钟时间。这就是所谓的 节约时间,3600000

TimeZone.setDefault(timeZone3); //设置默认时区
System.out.println((new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date())));  //显示伦敦时间

System.out.println(timeZone1.hasSameRules(timeZone3)); //比较规则,false
System.out.println(timeZone3.observesDaylightTime()); //是否夏令时,true

timeZone3.setID("Asia/Shanghai"); //设置时区ID

ZoneId zoneId = timeZone3.toZoneId();  //转换对象,java.time.ZoneId

SimpleTimeZone simpleTimeZone = new SimpleTimeZone(-28800000,"Asia/Shanghai");
System.out.println(simpleTimeZone.getOffset((new Date()).getTime())); //-28800000,与指定时间戳的时间差
System.out.println(simpleTimeZone.getRawOffset()); //-28800000,GMT offset

java.util.Calendarl类 

public class CalendarDemo {

    public static void main(String[] args) {
        /*
        构建对象
        new Calendar.Builder().build(); 默认1970/01/01 00:00:00
        Calendar.getInstance(),当前时间
        Calendar.getInstance(Locale aLocale)
        Calendar.getInstance(TimeZone zone)
        Calendar.getInstance(TimeZone zone, Locale aLocale)
         */
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(Calendar.YEAR)+"/"+  //2023/11/4,实际月份=MONTH+1=12
                           calendar.get(Calendar.MONTH)+"/"+
                           calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println(calendar.get(Calendar.HOUR)+":"+  //3:14:4
                           calendar.get(Calendar.MINUTE)+":"+
                           calendar.get(Calendar.SECOND));

        System.out.println(calendar.get(Calendar.AM_PM)); //0:上午,1:下午

//        calendar.add(Calendar.MONTH,1);  //指定字段加减
//        System.out.println(calendar.get(Calendar.YEAR)+"/"+  //2024/0/4
//                calendar.get(Calendar.MONTH)+"/"+
//                calendar.get(Calendar.DAY_OF_MONTH));

        System.out.println(calendar.getActualMaximum(Calendar.MONTH)); //11,字段的最大值
        System.out.println(calendar.getActualMinimum(Calendar.MONTH)); //0,字段的最小值

        System.out.println(Calendar.getAvailableCalendarTypes()); //[gregory, buddhist, japanese]
//        Locale[] localeList = Calendar.getAvailableLocales();
//        for(Locale locale: localeList ) System.out.println(locale);
        System.out.println(calendar.getCalendarType()); //gregory

        System.out.println(calendar.getDisplayName(Calendar.MONTH,1,Locale.CHINA)); //一月,获取名称
        //{一月=0, 六月=5, 九月=8, 二月=1, 三月=2, 四月=3, 八月=7, 十一月=10, 七月=6, 五月=4, 十月=9, 十二月=11}
        System.out.println(calendar.getDisplayNames(Calendar.MONTH,1,Locale.CHINA));

        System.out.println(calendar.getFirstDayOfWeek());  //1,1周的第一天,US:SUNDAY
        System.out.println(calendar.getGreatestMinimum(Calendar.MONTH)); //0
        System.out.println(calendar.getLeastMaximum(Calendar.MONTH)); //11
        System.out.println(calendar.getMaximum(Calendar.MONTH)); //11
        System.out.println(calendar.getMinimalDaysInFirstWeek()); //1,一年中第一周所需的最少天数

        Date date = calendar.getTime(); //转换成Date
        System.out.println(calendar.getTimeInMillis());  //1701677487590,时间戳
        TimeZone timeZone = calendar.getTimeZone(); //转换成TimeZone
        /*Date、时间戳、TimeZone设置
        	setTime(Date date)
        	setTimeInMillis(long millis)
        	setTimeZone(TimeZone value)
         */

        System.out.println(calendar.getWeeksInWeekYear()); //52,一年一共有几周
        System.out.println(calendar.getWeekYear()); //2023

        calendar.roll(Calendar.DAY_OF_MONTH, -2); //adds value to fields without changing larger fields.
        /*
        set方法
        	set(int field, int value)
        	set(int year, int month, int date)
            set(int year, int month, int date, int hourOfDay, int minute)
            set(int year, int month, int date, int hourOfDay, int minute, int second)
         */
        calendar.setWeekDate(calendar.getWeekYear(),52,1); //指定年、周数、一周中第几天
        System.out.println((new SimpleDateFormat("yyyy/MM/dd")).format(calendar.getTime()));

        System.out.println(calendar.get(Calendar.SATURDAY)); //上一次星期六到当前时间天数差

        /*其他方法
             after(Object when) 判断是否在设计之后
             before(Object when) 判断是否在时间之前
             clear() 设置所有字段undefined
             clear(int field) 设置指定字段undefined
             clone() 克隆
             compareTo(Calendar anotherCalendar) 比较
             complete() 设置未设置的字段
             computeFields()
             computeTime()
             isLenient() 日期时间解释是否宽松
             isSet(int field) 字段是否设置
             isWeekDateSupported()是否支持周日期
             setFirstDayOfWeek(int value) 设置一周第一天是星期几
             setLenient(boolean lenient) 设置日期时间解释是否宽松
             setMinimalDaysInFirstWeek(int value) //设置一年中第一周所需的最少天数

         */
    }
}

你若盛开,清风自来

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值