由于做项目碰到问题:数据库存的时间是10位的时间戳,int类型,但是要在页面上显示String或者Date类型,找了很多资料,终于找到了合适的。
代码如下:
1 package com.account.bean; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 public class DateUtil { 7 /** 8 * 时间戳转换成日期格式字符串 9 * @param seconds 精确到秒的字符串 10 */ 11 public static String timeStamp2Date(String seconds,String format) { 12 if(seconds == null || seconds.isEmpty() || seconds.equals("null")){ 13 return ""; 14 } 15 if(format == null || format.isEmpty()){ 16 format = "yyyy-MM-dd HH:mm:ss"; 17 } 18 SimpleDateFormat sdf = new SimpleDateFormat(format); 19 return sdf.format(new Date(Long.valueOf(seconds+"000"))); 20 } 21 /** 22 * 日期格式字符串转换成时间戳 23 * @param date_str 字符串日期 24 */ 25 public static String date2TimeStamp(String date_str,String format){ 26 try { 27 SimpleDateFormat sdf = new SimpleDateFormat(format); 28 return String.valueOf(sdf.parse(date_str).getTime()/1000); 29 } catch (Exception e) { 30 e.printStackTrace(); 31 } 32 return ""; 33 } 34 35 /** 36 * 取得当前时间戳(精确到秒) 37 * @return 38 */ 39 public static String timeStamp(){ 40 long time = System.currentTimeMillis(); 41 String t = String.valueOf(time/1000); 42 return t; 43 } 44 45 public static void main(String[] args) { 46 String timeStamp = timeStamp(); 47 System.out.println("timeStamp="+timeStamp); 48 System.out.println(System.currentTimeMillis()); 49 //该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数 50 51 String date = timeStamp2Date(timeStamp, "yyyy-MM-dd HH:mm:ss"); 52 System.out.println("date="+date); 53 String timeStamp2 = date2TimeStamp(date, "yyyy-MM-dd HH:mm:ss"); 54 System.out.println(timeStamp2); 55 } 56 }