java - 在java中从SimpleDateFormat中检索两个相等的日期

标签 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 date2 = "1412336700";
        String dateString1 = formatter.format(Long.parseLong(date1 + "000"));
        String dateString2 = formatter.format(Long.parseLong(date2 + "000"));
        System.out.println(dateString1 + " " + dateString2);

    }
}

date1date2 以秒为单位表示,因此我期望输出中有两个不同的日期,但打印的日期相同。我在网上查了这个tool , 如您所见,日期与两个不同的日子相关。

我该如何解决这个问题?

最佳答案

您的两个时间戳之间的差异恰好是 12 小时。

SimpleDateFormat 中的h 标识符格式化 AM/PM (1-12) 中的小时数,因此您实际上并没有输出真正的差异:日期从 AM 转移到 PM。

尝试使用 kH 标识符将一天中的小时格式化为 (1-24) 或 (0-23)。

SimpleDateFormat formatter = new SimpleDateFormat("mm kk 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); // prints 45 01 03 10 2014 45 13 03 10 2014

您还可以输出带有 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

关于java - 在java中从SimpleDateFormat中检索两个相等的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32439510/

相关文章:

java - KafkaStreams serde异常

c# - C# 中的 Int64 不等于 long 吗?

java - SimpleDateFormat 和解析 : parse doesn't fail with wrong input string date

java - 如何在 kotlin 中将字符串中的运算符号设置为 int

Java - 多线程一个大循环

c - Arduino 上的按位移位 unsigned long

vb.net - 格式化数字以在大于一千时显示逗号

android - 我需要根据国家/地区代码获取本地化的日期格式。但美国返回 dd/MM/yyyy

java - Android SimpleDateFormat 不工作

java - Hibernate 和存储过程(无参数和返回)