Java 如何从“自时间”组件中提取日期
我必须从自时间值中提取java格式MM dd yyyy的日期。因为时间是创建DoucMont的时间。例如,如果因为时间是1452413972759,日期将是“太阳,2016年1月10日08:19:32 GMT”(从开始计算)。由此,我可以获得所需格式的日期,但我无法为第一步编码,即从时间转换为日期。有人能帮我吗 我试过了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
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超出编译时错误范围。在文本末尾加上aL
,表示它是长文本。