将java.util.date默认格式转换为Java中的Timestamp

Convert java.util.date default format to Timestamp in Java

java.util.date的默认格式是这样的"Mon May 27 11:46:15 IST 2013"。 如何将其转换为时间戳并以秒计算相同和当前时间之间的差异?

1
2
java.util.Date date= new java.util.Date();
Timestamp ts_now = new Timestamp(date.getTime());

上面的代码给出了当前的时间戳。 但是,我不知道如何找到上述字符串的时间戳。


您可以使用Calendar类转换Date

1
2
3
4
5
6
7
8
9
10
11
12
public long getDifference()
{
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy");
    Date d = sdf.parse("Mon May 27 11:46:15 IST 2013");

    Calendar c = Calendar.getInstance();
    c.setTime(d);
    long time = c.getTimeInMillis();
    long curr = System.currentTimeMillis();
    long diff = curr - time;    //Time difference in milliseconds
    return diff/1000;
}


最好的

1
2
3
4
5
6
String str_date=month+"-"+day+"-"+yr;
DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy");
Date date = (Date)formatter.parse(str_date);
long output=date.getTime()/1000L;
String str=Long.toString(output);
long timestamp = Long.parseLong(str) * 1000;


您可以使用DateFormat(java.text。*)来解析日期:

1
2
DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
Date d = df.parse("Mon May 27 11:46:15 IST 2013")

您将不得不更改区域设置以匹配您自己的区域(这将得到10:46:15)。 然后,您可以使用相同的代码将其转换为时间戳。


您可以使用

1
2
  long startTime = date.getTime() * 1000000;;
  long estimatedTime = System.nanoTime() - startTime;

获得纳米时间。

Java Docs