时间处理

多线程使用DateFormat

[Joda-Time] 是一个很棒的开源的 JDK 的日期和日历 API 的替代品,其 DateTimeFormat 是线程安全而且不变的

import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import java.util.Date;
 
public class DateFormatTest {
 
  private final DateTimeFormatter fmt =
       DateTimeFormat.forPattern("yyyyMMdd");
 
  public Date convert(String source){
    DateTime d = fmt.parseDateTime(source);
    returnd.toDate();
  }
}

指定时间转为目标时区时间

     * 将系统时间转为目标时区时间
     *
     * @param dstTimeZoneCode 目标时区
     * @param srcDate 原时间
     * @return 目标时区时间
     */
    public static Date convertDate2TimeZone(String dstTimeZoneCode, Date srcDate) {

        //Get System Offset
        Calendar calendar = Calendar.getInstance();
        int srcOffSet = calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET);

        //Get dstTimeZone Offset
        TimeZone dstTimeZone = TimeZone.getTimeZone(dstTimeZoneCode);
        int dstOffSet = dstTimeZone.getOffset(srcDate.getTime());

        //Minus SRC offset and add dst Offset
        long dateMills = srcDate.getTime() - srcOffSet
                + dstOffSet;
        return new Date(dateMills);
    }

你可能感兴趣的:(时间处理)