Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从“自时间”组件中提取日期_Java_Date_Simpledateformat - Fatal编程技术网

Java 如何从“自时间”组件中提取日期

Java 如何从“自时间”组件中提取日期,java,date,simpledateformat,Java,Date,Simpledateformat,我必须从自时间值中提取java格式MM dd yyyy的日期。因为时间是创建DoucMont的时间。例如,如果因为时间是1452413972759,日期将是“太阳,2016年1月10日08:19:32 GMT”(从开始计算)。由此,我可以获得所需格式的日期,但我无法为第一步编码,即从时间转换为日期。有人能帮我吗 我试过了 DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); java.util.Date date = df.par

我必须从自时间值中提取java格式MM dd yyyy的日期。因为时间是创建DoucMont的时间。例如,如果因为时间是1452413972759,日期将是“太阳,2016年1月10日08:19:32 GMT”(从开始计算)。由此,我可以获得所需格式的日期,但我无法为第一步编码,即从时间转换为日期。有人能帮我吗

我试过了

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
        java.util.Date date = df.parse("1452320105343");
        String DATE_FORMAT = "MM/dd/yyyy";
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
        System.out.println("Today is " + sdf.format(date));

但它给出了解析异常。

您的代码无法工作,因为您试图解析毫秒数,就像解析的日期是
MM/dd/yyyy
格式化的日期一样

我希望以下代码能够工作,其中S表示毫秒:

DateFormat df = new SimpleDateFormat("S");
java.util.Date date = df.parse("1452413972759");
String DATE_FORMAT = "MM/dd/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
System.out.println("Today is " + sdf.format(date));
但由于某些原因,它没有显示1970年的日期

相反,以下解析秒而不是毫秒的代码可以满足您的需要:

DateFormat df = new SimpleDateFormat("s");
java.util.Date date = df.parse("1452413972");  // just remove the last 3 digits, or divide by 1000
String DATE_FORMAT = "MM/dd/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
System.out.println("Today is " + sdf.format(date));
或者只需按照@mohammedkhan的链接使用日期构造函数,而不是解析字符串:

java.util.Date date = new Date(1452413972759l);
String DATE_FORMAT = "MM/dd/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
System.out.println("Today is " + sdf.format(date));

简单地说:
java.util.Date日期=新日期(1452320105343)。但是,请注意,月、日和年是与时区相关的,因此您需要确保在适当的时区进行转换。@AndyTurner。java.util.Date日期=新日期(1452320105343);给出int类型的文本1452320105343超出编译时错误范围。在文本末尾加上a
L
,表示它是长文本。