------- android培训、java培训、期待与您交流! ----------
SimpleDateFormat类:
是日期格式化工具类
继承关系:
java.lang.Object << java.text.Format << java.text.DateFormat << java.text.SimpleDateFormat
模式字母
字母 | 日期或时间元素 | 表示 | 示例 |
G | Era 标志符 | AD | |
y | 年 | 1996; 96 | |
M | 年中的月份 | July; Jul; 07 | |
w | 年中的周数 | 27 | |
W | 月份中的周数 | 2 | |
D | 年中的天数 | 189 | |
d | 月份中的天数 | 10 | |
F | 月份中的星期 | 2 | |
E | 星期中的天数 | Tuesday; Tue | |
a | Am/pm 标记 | PM | |
H | 一天中的小时数(0-23) | 0 | |
k | 一天中的小时数(1-24) | 24 | |
K | am/pm 中的小时数(0-11) | 0 | |
h | am/pm 中的小时数(1-12) | 12 | |
m | 小时中的分钟数 | 30 | |
s | 分钟中的秒数 | 55 | |
S | 毫秒数 | 978 | |
z | 时区 | Pacific Standard Time; PST; GMT-08:00 | |
Z | 时区 | -0800 |
实践代码
import java.util.*;
import java.text.*;
public class DateDemo
{
public static void main(String[] args)
{
Date d=new Date();
System.out.println(d);
//1、创建SimpledateFormat对象
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");
//2、调用format方法让模式格式化指定Date对象
String time=sdf.format(d);
System.out.println("time="+time);
long l=System.currentTimeMillis();
Date d1=new Date(l);
System.out.println("d1:"+d1);
}
}
Calendar类(日历工具类):
作用:对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值
注意事项:
Calendar.DAY_OF_WEEK
外国: 星期日为一周的第一天 | SUN | MON | TUE | WED | THU | FRI | SAT |
DAY_OF_WEEK返回值 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
中国:星期一为一周的第一天 | MON | TUE | WED | THU | FRI | SAT | SUN |
DAY_OF_WEEK返回值 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”
Calendar.MONTH
外国的月份:0--11 所以Calendar.MONTH 返回的月份要加+1
代码实践:
import java.util.*;
import java.text.*;
public class CalendarDemo
{
public static void main(String[] args)
{
Calendar c=Calendar.getInstance();
String[] mons={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
String[] weeks={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
int month=c.get(Calendar.MONTH);
int dayOfWeek=c.get(Calendar.DAY_OF_WEEK);
int dayOfMonth=c.get(Calendar.DAY_OF_MONTH);
int year=c.get(Calendar.YEAR);
sop(year+"年"+mons[month]+dayOfMonth+"日"+" "+weeks[dayOfWeek]);
/**
sop(c.get(Calendar.YEAR)+"年");
sop((c.get(Calendar.MONTH)+1)+"月");
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
sop("星期"+(c.get(Calendar.DAY_OF_WEEK)-1));
*/
}
public static void sop(Object obj){
System.out.println(obj);
}
}
练习:
import java.util.*;
import java.text.*;
/*
两个练习:
1,获取任意年的二月有多少天。
思路:根据指定年设置一个时间就是
c.set(year,2,1)//某一年的3月1日。
c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。
2,获取昨天的现在这个时刻。
c.add(Calenar.DAY_OF_MONTH,-1);
*/
public class CalendarDemo2
{
public static void main (String[] args)
{
System.out.println("今年二月有:"+ get2MonthDay(2015)+"天");
}
public static int get2MonthDay(int year)
{
Calendar c=Calendar.getInstance();
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH,-1);
return c.get(Calendar.DAY_OF_MONTH);
}
}