Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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中从SimpleDataFormat检索两个相等的日期_Java_Long Integer_Simpledateformat_Seconds - Fatal编程技术网

在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