TimeDemo

package time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TimeDemo {

public static void main(String[] args) throws ParseException {
  timeTest();
  
  System.out.println("==============================");
  
  int year = 1987;
  int month = Calendar.JANUARY;
  int day = 20;
  int age = getAge(year, month, day);
  System.out.println("age=" + age);
  
  System.out.println("==============================");
  
  boolean isLeapYear = isLeapYear(2000);
  System.out.println(isLeapYear);
  
  System.out.println("==============================");
  
  
}
private static void timeTest() throws ParseException{
  /**
   * 由输出结果可知:
   *   java.util.Date         包含日期和时间
   *   java.sql.Date          只包含日期
   *      java.sql.Time      只包含时间
   *      java.sql.Timestamp 包含日期和时间
   *      java.util.Calendar 包含该类的所有字段的信息
   *  java.util.Date是java.sql.Date、java.sql.Time和java.sql.Timestamp的父类
   */
  java.util.Date uDate = new java.util.Date();
  java.sql.Date sDate = new java.sql.Date(uDate.getTime());
  java.sql.Timestamp ts = new java.sql.Timestamp(uDate.getTime());
  java.sql.Time time = new java.sql.Time(uDate.getTime());
  java.util.Calendar c = java.util.Calendar.getInstance();
  
  System.out.println("java.util.Date -> " + uDate + "\n"
       + "java.sql.Date -> " + sDate + "\n"
       + "java.sql.Timestamp -> " + ts + "\n"
       + "java.sql.Time -> " + time + "\n"
       + "java.util.Calendar -> " + c);
  
  System.out.println("==============================");
  
  System.out.println(System.currentTimeMillis() + "\n"
       + uDate.getTime() + "\n"
       + sDate.getTime()  + "\n"
       + ts.getTime()  + "\n"
       + time.getTime()  + "\n"
       + c.getTime());
  
  System.out.println("==============================");
  
  Date date = new Date();
  
  String format = new SimpleDateFormat("yyyy/MM/dd").format(date);
  System.out.println(format);
  
  date = new SimpleDateFormat("yyyy/MM/dd").parse(format);
  System.out.println(date);
  
  c.setTime(date);
  System.out.println(c.get(Calendar.DAY_OF_MONTH));
  
  System.out.println("==============================");
  
  //取当月的最后一天
  c = Calendar.getInstance();
  int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
  format = new SimpleDateFormat("yyyy/MM/" + maxDay).format(c.getTime());
  System.out.println("当月的最后一天 -> " + format);
  
}

private static int getAge(int year, int month, int day){
  Calendar birthDate = new GregorianCalendar(year, month, day);
  Calendar today = Calendar.getInstance();
  int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR);
  
  //若还没过生日,则age-1
  birthDate.add(Calendar.YEAR, age);
  if(today.before(birthDate)){
   age -= 1;
  }
  return age;
}

private static boolean isLeapYear(int year){
  GregorianCalendar cal = new GregorianCalendar();
  return cal.isLeapYear(year);
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值