[英]Convert Epoch value into 12 hours format timestamp
我正在尝试将 Epoch 时间转换为 Scala 中的时间戳。
时代价值:1475596740
时间戳:1475596740*1000 => 1475596740000
结果时间戳总是以 24 小时格式给出结果。但我想在 java/Scala 中将其转换为 12 小时格式。我使用了以下代码
val outputformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa");
val formatteddTS = outputformat.format(ts)
println(outputformat.parse(formatteddTS).getTime)
我需要将此结果与另一个 12 小时格式的时间戳值进行比较。 如果我进行比较,结果是有线的。
时间 1(纪元)
2016-10-04 21:29:00.0
1475596740000(以毫秒为单位)
时间 2(12 小时格式的时间戳)
2016-10-04 09:29:28.0
1475553568000(以毫秒为单位)
结果
时间 2-时间 1 => -43172
从逻辑上讲,2016-10-04 21:29:00.0 和 2016-10-04 09:29:28.0 之间的时间差约为 28 秒(28000),但我得到的结果是 43172
我相信你的计算有问题,因为我可以用你提供的数据看到正确的结果
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
long time1 = 1475596740000l;
long time2 = 1475553568000l;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa");
cal1.setTimeInMillis(time1);
System.out.println(dateFormat.format(cal1.getTime()));
cal2.setTimeInMillis(time2);
System.out.println(dateFormat.format(cal2.getTime()));
System.out.println(time1 - time2);
和输出:
2016-10-04 10:59:00 PM
2016-10-04 10:59:28 AM
43172000
43172000 应该是大约 12 小时
编辑
好的,我按照您的建议使用了另一种方法,结果又是一样的 - 43172000:
String date1 = "2016-10-04 21:29:00";
String date2 = "2016-10-04 09:29:28 AM";
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa", Locale.ENGLISH);
Date dateObj1 = null;
Date dateObj2 = null;
try {
dateObj1 = format1.parse(date1);
dateObj2 = format2.parse(date2);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(dateObj1.getTime() - dateObj2.getTime());
对于“2016-10-04 09:29:28 PM”,它返回-28000。 我相信问题出在日期转换中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.