Hiển thị các bài đăng có nhãn Date. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Date. Hiển thị tất cả bài đăng

Thứ Tư, 18 tháng 12, 2013

Class xử lý Date trong java

Việc xử lý kiểu Date trong java khá phức tạp, nhiều khi làm cho dev rất mất thời gian.
đây là class chứa một số hàm cơ bản thao tác trên kiểu Date
(sử dụng thêm thư viện joda-time của java)
http://www.joda.org/joda-time/


package test;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.joda.time.DateTime;
import org.joda.time.Years;
import org.joda.time.format.DateTimeFormat;

public class DateUtil {
 private static SimpleDateFormat simpleDateFormat;

 /**
  * get String of system date
  * 
  * @param format
  * @return String
  */
 public static String getSystemDateString(String format) {
  simpleDateFormat = new SimpleDateFormat(format);
  return simpleDateFormat.format(new Date());
 }

 /**
  * convert Date to String
  * 
  * @param date
  * @param format
  * @return String of date
  */
 public static String convertDateToString(Date date, String format) {
  if (null == date) {
   return null;
  }
  simpleDateFormat = new SimpleDateFormat(format);
  return simpleDateFormat.format(date);
 }

 /**
  * convert String to date
  * 
  * @param dateString
  * @param format
  * @return date
  */
 public static Date convertStringToDate(String dateString, String format) {
  if (null == dateString || "".equals(dateString.trim())) {
   return null;
  }
  return DateTime.parse(dateString, DateTimeFormat.forPattern(format))
    .toDate();
 }

 /**
  * calculate age
  * 
  * @param birthday
  * @return age
  */
 public static int calculateAge(Date birthday) {
  DateTime dtBirthday = new DateTime(birthday);
  DateTime now = new DateTime();
  Years age = Years.yearsBetween(dtBirthday, now);
  return age.getYears();
 }

 /**
  * add num day into date
  * 
  * @param number
  * @param date
  * @return added date
  */
 public static Date addingDays(int number, Date date) {
  DateTime dt = new DateTime(date);
  return dt.plusDays(number).toDate();
 }

 public static void main(String[] args) {
  String format = "dd/MM/yyyy";
  String dateString = "28/02/1991";
  Date date = null;
  Date now = new Date();
  System.out.println(getSystemDateString(format));
  date = convertStringToDate(dateString, format);
  System.out.println(date.toString());
  System.out
    .println(calculateAge(convertStringToDate(dateString, format)));
  System.out.println(convertDateToString(now, format));
  System.out.println("after adding: ");
  System.out.println(convertDateToString(addingDays(-90, now), format));
  System.out.println(convertDateToString(addingDays(20, now), format));
 }
}