时间处理
2018-11-21 本文已影响0人
Ray昱成
多线程使用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);
}