Android 进阶之路Android 填坑之路

Android 时间戳转换成时间总是1970年的问题!!!!!

2018-10-14  本文已影响238人  雪纳瑞的哈士奇

我当时是这样写的

/**
 * 时间戳转换成时间
 */
public static String stampToDate(long stamp, String format) {
    SimpleDateFormat sdf = new SimpleDateFormat(format);//这个是你要转成后的时间的格式
    Date date = new Date(stamp);
    String sd = sdf.format(date);
    return sd;
}

/**
 * 时间戳转化时间
 *
 * @param milSecond
 * @param pattern
 * @return
 */
public static String getDateToString(String milSecond, String pattern) {
    long lt = new Long(milSecond);
    return stampToDate(lt,pattern);
}

为了方便调用 我写了两个方法 一个是当传入的时间戳是字符串的时候调用 一个是当时间戳传入的值是 long 类型的时候调用
但是每次的返回值都是1970年,从来没想过这样简单的问题还会出现错误,然后就是各种打断,查看是不是时间戳的问题 log 出来的值放到在线时间戳转换器中也是正确的时间 就查了查资料 就修改了一行代码

/**
 * 时间戳转换成时间
 */
public static String stampToDate(long stamp, String format) {
    SimpleDateFormat sdf = new SimpleDateFormat(format);//这个是你要转成后的时间的格式
    Date date = new Date(stamp * 1000);
    String sd = sdf.format(date);
    return sd;
}

/**
 * 时间戳转化时间
 *
 * @param milSecond
 * @param pattern
 * @return
 */
public static String getDateToString(String milSecond, String pattern) {
    long lt = new Long(milSecond);
    return stampToDate(lt,pattern);
}

将 Date date = new Date(stamp); 换成了Date date = new Date(stamp * 1000);然后问题解决
其原因应该就是毫秒和秒的问题 没有具体查询 欢迎书友指正错误

上一篇 下一篇

猜你喜欢

热点阅读