黑马程序员-----Date和Calendar
来源:互联网 发布:国家燃烧知乎 编辑:程序博客网 时间:2024/05/01 07:51
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
1.Date与DateFormat
1.1 Date
Date类用来处理日期、时间。这个类从JDK1.0就开始存在了,所以大部分构造器和方法都已经过时,不推荐使用了。
构造器:
Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间以来的指定毫秒数。
1.2 DateFormat与SimpleDateFormat
DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
方法:
String format(Date date):将一个 Date 格式化为日期/时间字符串。
SimpleDateFormat是DateFormat的实现子类。SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
构造器:
SimpleDateFormat():用默认的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
下面是pattern中字母表示的各个日期和时间的对应关系:
y ---------- 年
M ---------- 年中的月份
d ---------- 月份中的天数
H ---------- 一天中的小时数(0-23)
k ---------- 一天中的小时数(1-24)
K ---------- am/pm 中的小时数(0-11)
h ---------- am/pm 中的小时数(1-12)
k ---------- 一天中的小时数(1-24)
K ---------- am/pm 中的小时数(0-11)
h ---------- am/pm 中的小时数(1-12)
m ---------- 小时中的分钟数
s ---------- 分钟中的秒数
E ---------- 星期中的天数
注:要严格区分大小写。
例:yyyy年MM月dd日 hh时mm分ss秒 E
public class DateDemo {public static void main(String[] args) {//1.创建Date对象Date date = new Date();//2.使用DateFormat将时间格式封装//父类引用DateFormat指向子类对象SimpleDateFormatDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 E");//3.使用format方法格式化指定Date对象//返回StringString time = format.format(date);System.out.println(time);}}
2.Calendar
Calendar 类是一个抽象类,它为特诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。
Calendar可以通过调用set方法来设置日历字段值。还可以通过add方法对时间或日期进行计算。
主要属性:
static int YEAR:年。
static int MONTH:月。注意,从0开始计数。即1月用0表示。
static int DAY_OF_MONTH:一个月中的某天。
static int DAY_OF_WEEK:一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY。注意:星期数从1开始计数,并且代表星期日。
static int HOUR:小时,12小时制。
static int HOUR_OF_DAY:小时,24小时制。
static int MINUTE:分钟。
static int SECOND:秒。
方法:
static Calendar getInstance():使用默认时区和语言环境获得一个日历。返回的
Calendar
基于当前时间,使用了默认时区和默认语言环境。 int get(int field):返回给定日历字段的值。
void set(int field, int value):将给定的日历字段设置为给定值。
void set(int year, int month, int date):设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。该方法可以对时间或日期进行计算。
public class CalendarDemo {public static void main(String[] args) {//对月份使用查表法,因为Calendar中月份从0开始String[] months = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};//对星期使用查表法,因为Calendar中1代表星期日。//又因为0没有任何代表,所以数组角标0为空String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};//使用getInstance方法得到对象Calendar c = Calendar.getInstance();//年System.out.println(c.get(Calendar.YEAR) + "年");//月份,查表法int month = c.get(Calendar.MONTH);System.out.println(months[month]);//日System.out.println(c.get(Calendar.DAY_OF_MONTH) + "日");//星期,查表法int week = c.get(Calendar.DAY_OF_WEEK);System.out.println(weeks[week]);}}
public class CalendarDemo2 {public static void main(String[] args) {Calendar c = Calendar.getInstance();//使用set方法设置日期c.set(2012, 11, 21);System.out.println("当前时间:");printCalendar(c);System.out.println();//使用add方法对日期计算c.add(Calendar.MONTH, 6);System.out.println("6个月后,时间是:");printCalendar(c);}//打印时间方法public static void printCalendar(Calendar c){String[] months = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};System.out.print(c.get(Calendar.YEAR) + "年");//月份,查表法int month = c.get(Calendar.MONTH);System.out.print(months[month]);//日System.out.print(c.get(Calendar.DAY_OF_MONTH) + "日");//星期,查表法int week = c.get(Calendar.DAY_OF_WEEK);System.out.print(weeks[week]);}}
练习:获取任意年的2月有多少天。
/* * 获取任意年的2月有多少天 * */public class CalendarTest {public static void main(String[] args) {Calendar c = Calendar.getInstance();int yearVal = 2000;c.set(Calendar.YEAR, yearVal);int days = getDays(c);System.out.println(yearVal + "年2月有" + days + "天");}//该方法用于获取任意年的2月有多少天public static int getDays(Calendar c){//将该年份的日期设置到3月1日c.set(Calendar.MONTH, 2);c.set(Calendar.DAY_OF_MONTH, 1);//对该日期进行减一天操作,得到该年份2月最后一天//最后一天的数字即为2月的天数c.add(Calendar.DAY_OF_MONTH, -1);int days = c.get(Calendar.DAY_OF_MONTH);return days;}}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
0 0
- 黑马程序员-----Date和Calendar
- 黑马程序员-Date和Calendar
- 黑马程序员---Date、Calendar类
- 黑马程序员 Date 、Calendar 、数学类和字符编码
- 黑马程序员:Java基础总结----类 Date 和类 Calendar
- (黑马程序员)学习笔记,日期Date和Calendar
- 黑马程序员-日期类Date&Calendar
- 黑马程序员_System,Date,Calendar,Math类
- 黑马程序员----Date Calendar使用细节
- 黑马程序员 java基础<二>--其它对象Date、Calendar和Math-Random(2)
- 黑马程序员—java技术blog—第一篇:Date和Calendar类的使用方法
- 黑马程序员——JAVA笔记——Date和Calendar的用法
- 黑马程序员----DATE 类,Math 类,Calendar 类
- 黑马程序员---System,Math,Runtime,Date类/Calendar的使用
- 黑马程序员_<<常用类(System.Math,Calendar,Date,Runtime)>>
- 黑马程序员_JAVA- System、Runtime、Math、Date、Calendar
- 黑马程序员之其他对象(System,Date,Calendar)
- 黑马程序员_Java 其它对象(System Runtime Date Calendar Math)
- C++的基础知识和易出错误
- 3D 顶点颜色 纹理 材质之间的关系
- OGG-01028 unexpected LOB record or record fragment
- 四舍五入
- IOS 开源库 asyncSocket 的使用心得
- 黑马程序员-----Date和Calendar
- Java synchronized详解
- C/C++ 微软面试题 -链表
- IOS 生成pem证书方法
- 下一代的APACHE HADOOP MAPREDUCE : YARN
- pthread_create如何传递多个参数
- error: no matching function for call to
- 我们玩新浪微博
- 字典树——Message Flood