在java中从SimpleDataFormat检索两个相等的日期
我制作此代码片段是为了说明我的问题:在java中从SimpleDataFormat检索两个相等的日期,java,long-integer,simpledateformat,seconds,Java,Long Integer,Simpledateformat,Seconds,我制作此代码片段是为了说明我的问题: import java.text.SimpleDateFormat; public class Foo { public static void main(String[] args) { SimpleDateFormat formatter = new SimpleDateFormat("mm hh dd MM yyyy"); String date1 = "1412293500"; String
import java.text.SimpleDateFormat;
public class Foo {
public static void main(String[] args) {
SimpleDateFormat formatter = new SimpleDateFormat("mm hh dd MM yyyy");
String date1 = "1412293500";
String date2 = "1412336700";
String dateString1 = formatter.format(Long.parseLong(date1 + "000"));
String dateString2 = formatter.format(Long.parseLong(date2 + "000"));
System.out.println(dateString1 + " " + dateString2);
}
}
date1
和date2
以秒为单位,因此我希望输出中有两个不同的日期,但打印的日期相同。我在网上查了一下,你可以看到日期与两个不同的日子有关
我如何解决这个问题?这是因为您的日期是12小时,并且您使用小写字母“h”作为小时格式。日期分别是凌晨1点和下午1点。要在输出中看到这一点,请使用大写字母“H”或将“a”添加到“am/pm”标记的格式中。两个时间戳之间的差异正好是12小时
h
标识符以AM/PM(1-12)格式显示小时数,因此您实际上不会输出真正的差异:日期从AM移到PM
尝试使用k
或H
标识符,将一天中的小时设置为(1-24)或(0-23)
您还可以输出带有a
标识符的AM/PM标记,如下所示:
SimpleDateFormat formatter = new SimpleDateFormat("mm hh dd MM yyyy aa");
String date1 = "1412293500";
String date2 = "1412336700";
String dateString1 = formatter.format(Long.parseLong(date1 + "000"));
String dateString2 = formatter.format(Long.parseLong(date2 + "000"));
System.out.println(dateString1 + " " + dateString2); // prints 45 01 03 10 2014 AM 45 01 03 10 2014 PM
首先,发布编译的代码。首先,您的代码是错误的,因为您在var声明中编写了dat2。无论如何,这是真的我的jwm打印出日期1:45 01 03 10 2014日期2:45 01 03 10 2014可能它在某个值上循环
k
有点深奥。这通常通过H
完成。
SimpleDateFormat formatter = new SimpleDateFormat("mm hh dd MM yyyy aa");
String date1 = "1412293500";
String date2 = "1412336700";
String dateString1 = formatter.format(Long.parseLong(date1 + "000"));
String dateString2 = formatter.format(Long.parseLong(date2 + "000"));
System.out.println(dateString1 + " " + dateString2); // prints 45 01 03 10 2014 AM 45 01 03 10 2014 PM