Java 日期 Api

 1 public class TimeTest {
 2
 3     public static void main(String[] args) {
 4         Date d1 = new Date();
 5         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
 6         System.out.println(sdf.format(d1));
 7
 8         Calendar c1 = Calendar.getInstance();
 9         int year = c1.get(Calendar.YEAR);
10         int month = c1.get(Calendar.MONTH) + 1;
11         int day = c1.get(Calendar.DAY_OF_MONTH);
12         int hour = c1.get(Calendar.HOUR);
13         int minute = c1.get(Calendar.MINUTE);
14         int second = c1.get(Calendar.SECOND);
15         System.out.println(year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒");
16
17         int hourOfDay = c1.get(Calendar.HOUR_OF_DAY);
18         System.out.println("一天的第" + hourOfDay + "小时");
19
20         int dayOfWeek = c1.get(Calendar.DAY_OF_WEEK);
21         System.out.println("一周的第" + dayOfWeek + "天");
22
23         int dayOfMonth = c1.get(Calendar.DAY_OF_MONTH);
24         System.out.println("一月的第" + dayOfMonth + "天");
25
26         int dayOfYear = c1.get(Calendar.DAY_OF_YEAR);
27         System.out.println("一年的第" + dayOfYear + "天");
28
29         int weekOfYear = c1.get(Calendar.WEEK_OF_YEAR);
30         System.out.println("一年的第" + weekOfYear + "周");
31
32         int weeksInWeekYear = c1.getWeeksInWeekYear();
33         System.out.println("一年有" + weeksInWeekYear + "周");
34
35         Date time = c1.getTime();
36         System.out.println("Date:" + time);
37
38         TimeZone timeZone = c1.getTimeZone();
39         System.out.println("时区:" + timeZone);
40
41         long timeInMillis = c1.getTimeInMillis();
42         System.out.println(timeInMillis);
43
44
45         int weekYear = c1.getWeekYear();
46         System.out.println("今年是:" + weekYear);
47
48     }
49 }

测试结果:

2016-09-06:14-41-16
2016年9月6日2时41分16秒
一天的第14小时
一周的第3天
一月的第6天
一年的第250天
一年的第37周
一年有53周
Date:Tue Sep 06 14:41:16 CST 2016
时区:sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
1473144076561
今年是:2016

Java 中日期有2个类

1. Date + SimpleDateFormat

Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理

2. Calender

在代码中遇到日期处理,建议使用该类,通过 getInstance() 方法获取到实例。

参考:http://www.apihome.cn/api/java/Calendar.html

时间: 2024-08-30 05:14:48

Java 日期 Api的相关文章

Java中日期API常见问题整理

今天在使用Java日期API的时候遇到的一些问题,自己整理了下.貌似JDK8中有关于时间行的API,可是JDK8用的还不是很多,先弄明白7的相关知识. 问题1:如何以制定格式显示时间? 问题2:如何计算时间间隔? 问题3:如何计算指定时间间隔以后的时间? 下面直接上代码(使用JUnit4进行测试): import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import j

Java 8时间和日期API 20例

伴随lambda表达式.streams以及一系列小优化,Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API.Java处理日期.日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限.Java也意识到需要一个更好的 API来满足社区中已经习惯了使用JodaTime API的人们.全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant). 长

全面解析Java日期时间API

时区 GMT(Greenwich Mean Time):格林尼治时间,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间. UTC(Universal Time Coordinated):统一协调时间,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间,标准 UTC 时间格式 yyyy-MM-dd'T'HH:mm:ss.SSSXXX. 格林尼治时间已经不再被作为标准时间使用,UTC 是最主要的世界时间标准. Java提供了获取当前时间的方法 Syst

Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总结 0.前言 通过前面Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中主要的类关系简图如下: 可以看出主要的LocalDate, LocalTime, LocalDateTime, Instant都是实现相同的接口,这里以LocalDate为例分析jav

Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate

通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用java新的日期时间API重写农历LunarDate. package com.xkzhangsan.time; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import ja

Java日期时间API系列17-----Jdk8中java.time包中的新的日期时间API类,java日期计算4,2个日期对比,获取相差年月日部分属性和相差总的天时分秒毫秒纳秒等

通过Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别 ,可以看出java8设计非常好,新增了Period和Duration类,专用于对比2个时间场景: Period,可以获取2个时间相差的年月日的属性. Duration,可以获取2个时间相差总的天时分秒毫秒纳秒. 下面应用: /** * 获取2个日期的相差年月天的年数部分 * @param startInclusive * @param endExclusive

Java日期时间API系列20-----Jdk8中java.time包中的新的日期时间API类,ZoneId时区ID大全等。

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等.中已经对ZoneId说明,并列出了常用时区ID信息. 并且通过 java.time.ZoneId.getAvailableZoneIds()获取到所有可用时区ID. 1.测试代码 /** * 获取可用时区ID */ @Test public void getAvailableZon

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId. ZonedDateTime是用来处理时区相关的时间,它的各种计算都离不开ZoneId.先看ZoneId. 1. ZoneId 为时区ID,比如Europe/Paris,表示欧洲巴黎时区 1.1 时区相关知识,时区,UTC时间,GMT时间,Unix时间戳 时区 地球自西向东旋转,东边比西边先看到

Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的特点

1.不变性 新的日期/时间API中,所有的类都是不可变的,这对多线程环境有好处. 比如:LocalDateTime 2.关注点分离 新的API将人可读的日期时间和机器时间(unix timestamp)明确分离,它为日期(Date).时间(Time).日期时间(DateTime).时间戳(unix timestamp)以及时区定义了不同的类. 不同时间分解成了各个类,比如:LocalDate, LocalTime, LocalDateTime, Instant,Year,Month,YearMo