java.util(Date和Calendar)
public class Dateimplements java.io.Serializable, Cloneable, Comparable<Date>
{
public Date() { //当前时间
this(System.currentTimeMillis());
}
public Date(long date) { //分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
fastTime = date;
}
@Deprecated
public Date(int year, int month, int date) {
this(year, month, date, 0, 0, 0);
}
@Deprecated
public Date(int year, int month, int date, int hrs, int min) {
this(year, month, date, hrs, min, 0);
}
........................
public String toString() {
// "EEE MMM dd HH:mm:ss zzz yyyy";
BaseCalendar.Date date = normalize();
StringBuilder sb = new StringBuilder(28);
int index = date.getDayOfWeek();
if (index == gcal.SUNDAY) {
index = 8;
}
convertToAbbr(sb, wtb[index]).append(' '); // EEE
convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' '); // MMM
CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd
CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':'); // HH
CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm
CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss
TimeZone zi = date.getZone();
if (zi != null) {
sb.append(zi.getDisplayName(date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz
} else {
sb.append("GMT");
}
sb.append(' ').append(date.getYear()); // yyyy
return sb.toString();
}
}
Date 表示距离1970-01-01 00:00:00的毫秒数,值与时区无关。大部分Date的方法都过时了,由Calendar类的方法替代
public class DateTest {@SuppressWarnings("deprecation")
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
System.out.println(System.currentTimeMillis());
long l = Date.parse("Sun Sep 10 03:16:48 CST 2017");
System.out.println(l);
Date data = new Date(l);
System.out.println(data);
Date day1=new Date(11,3,4);
System.out.println(day1);
}
}
输出:
Sun Sep 10 03:17:22 CST 2017
1504984642047
1505035008000
Sun Sep 10 17:16:48 CST 2017
Tue Apr 04 00:00:00 CST 1911
Calendar
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {protected Calendar()
{
this(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));
sharedZone = true;
}
protected Calendar(TimeZone zone, Locale aLocale)
{
fields = new int[FIELD_COUNT];
isSet = new boolean[FIELD_COUNT];
stamp = new int[FIELD_COUNT];
this.zone = zone;
setWeekCountData(aLocale);
}
public static Calendar getInstance()
{
Calendar cal = createCalendar(
TimeZone.getDefaultRef(),Locale.getDefault(Locale.Category.FORMAT));
cal.sharedZone = true;
return cal;
}
public static Calendar getInstance(TimeZone zone)
{
return createCalendar(zone, Locale.getDefault(Locale.Category.FORMAT));
}
public final Date getTime() {
return new Date(getTimeInMillis());
}
public final void setTime(Date date) {
setTimeInMillis(date.getTime());
}
public long getTimeInMillis() {
if (!isTimeSet) {
updateTime();
}
return time;
}
........
Calendar类是一个抽象类,Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now = Calendar.getInstance();
可以使用下面三个方法把日历定到任何一个时间:
set(int year ,int month,int date)
set(int year ,int month,int date,int hour,int minute)
set(int year ,int month,int date,int hour,int minute,int second)
如果想获得年份、月份、小时等信息可以使用:
Now.get(Calendar.Month);这样的方法 0表示一月,1表示二月
get(Calendar.DAY_OF_MONTH)获得这个月的第几天
get(Calendar.DAY_OF_WEEK)获得这个星期的第几天
get(Calendar.DAY_OF_YEAR)获得这个年的第几天
getTimeMillis()获得当前时间的毫秒表示
Calendar和Date的转化
(1) Calendar转化为Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
(2) Date转化为Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
格式化输出日期时间:
Date data = new Date();
//SimpleDateFormat类用来对日期字符串进行解析和格式化输出
SimpleDateFormat f2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat f3=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat f4=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat f5=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
System.out.println(f2.format(d));
System.out.println(f3.format(d));
System.out.println(f4.format(d));
System.out.println(f5.format(d));
关于Calendar 的实现类:GregorianCalendar
Java
中只携带了格里历(公历、阳历)的实现,那就是java.util.GregorianCalendar
类
Calendar calendar =
new
GregorianCalendar();
Calendar
类有着对应的get
方法,让你获取到年、月、日、小时、分钟、秒、毫秒和给定日期的时区
Calendar
类有着对应的set
方法,因此你也可以对这些字段进行设置
以上是 java.util(Date和Calendar) 的全部内容, 来源链接: utcz.com/z/392162.html