java时间格式转换

DateTimeFormatter

推荐使用 这个函数代替 format.

DateTimeFormatter不但是不变对象,它还是线程安全的。
SimpleDateFormat不是线程安全的,使用的时候,只能在方法内部创建新的局部变量。
DateTimeFormatter可以只创建一个实例,到处引用。

// 简单使用
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd HH:mm:ss"); 
String dateTime = formatter.format(LocalDateTime.now());
System.out.println(dateTime); //2018-Dec-21 11:14:12 


// String --> LocalDate
LocalDate localDate = LocalDate.parse("2019-12-07");
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
System.out.println(LocalDate.parse("2019-10-09").format(pattern));


// String --> LocalTime
LocalTime localTime = LocalTime.parse("07:43:53");


// String -->LocalDateTime
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"); // 12小时
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 24小时      
LocalDate localDate = LocalDate.parse("2019-12-07 07:43:53",formatter);

基本使用

// 时间戳转换为时间
public static String timeStamp2Date(long seconds, String pattern) {
        String time = "";
        if (TextUtils.isEmpty(pattern)) pattern = "yyyy-MM-dd  HH:mm:ss";
        LocalDateTime dateTime = LocalDateTime.ofEpochSecond(seconds / 1000L, 0, ZoneOffset.ofHours(8));
        if (seconds != 0) time = dateTime.format(DateTimeFormatter.ofPattern(pattern));
        return time;
    }

// 时间转换为时间戳
public static long date2TimeStamp(String date,String pattern) {
        long timeStamp ;
        if (TextUtils.isEmpty(pattern)) pattern = "yyyy-MM-dd  HH:mm:ss";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        LocalDateTime localDateTime = LocalDateTime.parse(date,formatter);
        timeStamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
        LogUtils.i("String转时间戳" + timeStamp);
        return timeStamp;
    }

LocalDateTime

// 获取当前时间
LocalDateTime.now();

// 获取秒
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
// 秒的基础上使用  .toEpochMilli(); 转为毫秒


//将java.util.Date 转换为java8 的java.time.LocalDateTime,默认时区为东8区
public static LocalDateTime dateConvertToLocalDateTime(Date date) {
    return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();
}


//将java8 的 java.time.LocalDateTime 转换为 java.util.Date,默认时区为东8区
public static Date localDateTimeConvertToDate(LocalDateTime localDateTime) {
    return Date.from(localDateTime.toInstant(ZoneOffset.of("+8")));
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值