如何在Java中对时间日期进行处理?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站建设、网站设计、网站策划、网页设计、国际域名空间、虚拟主机、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。时间的基础知识
时区:整个地球分为二十四时区,每个时区都有自己的本地时间。
为了统一起见,使用一个统一的时间,称为全球标准时间(UTC,Universal Time Coordinated)。
TC与格林尼治平均时(GMT,Greenwich Mean Time,也翻译成:格林威治标准时间)差不多一样
CST(北京时间),北京时间,China standard Time,中国标准时间。在时区划分上,属东八区,比协调世界时早8小时,记为UTC+8。
时间戳:自1970年1月1日(08:00:00GMT)至当前时间的总秒数,它也被称为Unix时间戳(unix Timestamp),广泛的运用在知识产权保护、合同签字、金融帐务、电子报价投标、股票交易等方面
格式多种:2050-10-3110:11:11、2050/10/3110/10:10年、月、日、周几等
背景:程序代码中怎么表示时间呢?我需要获取当前时间怎么办
ava.util包提供了Date类来封装当前的日期和时间
构造函数
//当前时间 Date() //从1970年1月1日起的毫秒数作为参数 Date(long millisec)
常见方法
//返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数。 long getTime() //调用此方法的Date对象在指定日期之后返回true,否则返回false。 boolean after(Date date) //调用此方法的Date对象在指定日期之前返回true,否则返回false。 boolean before(Date date)
Java8通过发布新的Date-Time API(JSR310)来进一步加强对日期与时间的处理
新增了很多常见的api,如日期/时间的比较,加减,格式化等
包所在位置 java.time
核心类
LocalDate:不包含具体时间的日期。
LocalTime:不含日期的时间。
LocalDateTime:包含了日期及时间。
LocalDate常用API
LocalDate today=LocalDate.now(); system.out.print1n("今天日期:"+today); //获取年,月,日,周几 system.out.print1n("现在是哪年:"+today.getYear()); system.out.print1n("现在是哪月:"+today.getMonth()); System.out.print1n("现在是哪月(数字):"+today.getMonthValue()); System.out.print1n("现在是几号:"+today.getDayofMonth()); system.out.print1n("现在是周几:"+today.getDayofweek()); //加减年份,加后返回的对象才是修改后的,旧的依旧是旧的LocalDate changeDate=today.plusYears(1); system.out.print1n("加后是哪年:"+changeDate.getYear()); System.out.print1n("旧的是哪年:"+today.getYear()); //日期比较 system.out.print1n("isafter:"+changeDate.isAfter(today)); //getYear()int 获取当前日期的年份 //getMonth()Month获取当前日期的月份对象 //getMonthValue()int 获取当前日期是第几月 //getDayofweek()Dayofweek 表示该对象表示的日期是星期几 //getDayofMonth()int 表示该对象表示的日期是这个月第几天 //getDayofyear()int 表示该对象表示的日期是今年第几天 //withyear(int year)LocalDate 修改当前对象的年份 //withMonth(int month)LocalDate修改当前对象的月份 //withpayofMonth(int dayofMonth)LocalDate 修改当前对象在当月的日期 //plusYears(long yearsToAdd)Localpate 当前对象增加指定的年份数 //plusMonths(1ong monthsToAdd)LocalDate 当前对象增加指定的月份数 //plusweeks(1ong weeksToAdd)LocalDate 当前对象增加指定的周数 //plusDays(1ong daysToAdd)LocalDate 当前对象增加指定的天数 //minusYears(long yearsTosubtract)LocalDate 当前对象减去指定的年数 //minusMonths(1ong months ToSubtract)LocalDate当前对象减去注定的月数 //minusWeeks(long weeksTosubtract)LocalDate 当前对象减去指定的周数 //minusDays(1ong daysTosubtract)LocalDate当前对象减去指定的天数 //compareTo(ChronoLocalDate other)int 比较当前对象和other对象在时间上的大小,返回值如果为正,则当前对象时间较晚 //isBefore(ChronoLocalDate other)boolean比较当前对象日期是否在other对象日期之前 //isAfter(ChronoLocalDate other)boolean 比较当前对象日期是否在other对象日期之后 //isEqual(ChronoLocalDate other)boolean 比较两个日期对象是否相等
为什么要时间日期做格式化
程序打印,或者网页显示时间日期格式,用户有不同的需求,则需要根据一定的规则进行格式化
常用的占位符
y四位数年份
M月d日
h时在
m分
S毫秒
JDK8之后:引入线程安全的日期与时
LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String ldtStr = dtf.format(ldt); System.out.println(ldtStr);
获取指定的日期时间对象LocalDate Time ldt=LocalDate Time.of(2020,11,11,8,20,30);System.out.println(ldt);
计算日期时间差 java.time.Duration
LocalDateTime today = LocalDateTime.now(); System.out.println(today); LocalDateTime changeDate = LocalDateTime.of(2020,10,1,10,40,30); System.out.println(changeDate); Duration duration = Duration.between( today,changeDate);//第⼆二个参数减第⼀一 个参数 System.out.println(duration.toDays());//两个时间差的天数 System.out.println(duration.toHours());//两个时间差的小时数 System.out.println(duration.toMinutes());//两个时间差的分钟数 System.out.println(duration.toMillis());//两个时间差的毫秒数 System.out.println(duration.toNanos());//两个时间差的纳秒数
关于如何在Java中对时间日期进行处理问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。