gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:39:52 24 4
gpt4 key购买 nike

我做了这个片段来展示我的问题:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com