下面的代码我尝试了没有工作..
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import java.sql.Timestamp;
public class TimestampTest {
public static void main(String[] args){
long unixSeconds = 1429582984839L; // suffix L
java.util.Date date= new java.util.Date(unixSeconds*1000L);
System.out.println(new Timestamp(date.getTime()));
}}
预期产量:2015年4月21日上午03:15以这种格式.....但我得到了47271-09-06 09:40:39.0
答案 0 :(得分:0)
要制作长型变量,您需要后缀“L' L'或者' l'在号码。否则它将是一个整数。
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public void demoMethod() {
long unixSeconds = 1333372339860L; // suffix L
Date date = new Date(unixSeconds*1000L);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
sdf.setTimeZone(TimeZone.getTimeZone("GMT-4"));
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
}
试试这段代码,它会起作用。如果有用或正确。请标记它有用或正确答案。 使用此代码更简单,更容易。
import java.sql.TimeStamp;
long unixSeconds = 1333372339860L; // suffix L
java.util.Date date= new java.util.Date(unixSeconds*1000L);
System.out.println(new Timestamp(date.getTime()));
答案 1 :(得分:0)
1333372339860 / 60/60/24/365 = 42280
Plus 1970 = 44250
所以程序是正确的(我的计算忽略了闰年)。
你从哪里得到这个号码?
答案 2 :(得分:0)
您的电话号码1429582984839已经是毫秒级。没有必要乘以1000.这就是你需要知道的全部内容。
(对于想要在JavaScript中确认的人,请尝试:新日期(1429582984839) - >" 2015-04-21T02:23:04.839Z")
答案 3 :(得分:0)
long unixSeconds = 1429582984839;
Date date1 = new Date(unixSeconds);
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy h:mm:ss a");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+1"));
String formattedDate = sdf.format(date1);
System.out.println(formattedDate);