您的位置:首页 > 其它

Unix时间戳和北京时间相互转换

2016-01-25 12:56 417 查看
场景需求:界面上有时间显示,不管是服务端还是app端需要将Unix时间戳转换成北京时间

坑:网上基本上都是这样的解法



坑:很容易让人疑惑我全出来的123456789是int类型的,其实这个123456789是long类型的。

具体Code代码如下:

//将Unix时间戳转化为平常时间
public static String[] strToDate(String strDate) {   //
Long timestamp = Long.parseLong(strDate) * 1000;
String date = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date(timestamp));
String[] s = date.split("-");
return s;
}

//将Unix时间戳转北京时间
public static String[] strToBJDate(String strDate) {
String date = new java.text.SimpleDateFormat("MM-dd-HH").format(new java.util.Date(Long.parseLong(strDate) * 1000));
String[] s = date.split("-");
return s;
}

//将Unix时间戳转北京时间  //yyyy-MM-dd HH:mm:ss
public static String[] strToDayDate(String strDate) {
String date = new java.text.SimpleDateFormat("dd-HH").format(new java.util.Date(Long.parseLong(strDate) * 1000));
String[] s = date.split("-");
return s;
}

//将Unix时间戳转北京时间
public static String strOrgin(String strDate) {
String date = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date(Long.parseLong(strDate) * 1000));
return date;
}

public static String getNowDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
return dateString;
}

public static int compare_date(String DATE1, String DATE2) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime()) {
System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println("dt1在dt2后");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}


将普通时间转Unix时间:

SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
String dateString = "2016/3/15 22:55:47";
Date date = df.parse(dateString);
long m=date.getTime();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unix