iam在一个实时项目中工作,自1970年1月1日起,我被要求找到秒。我使用以下代码找出秒,但给出了错误的结果。代码如下。
public long returnSeconds(int year, int month, int date) {
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar1.set(1970, 01, 01);
calendar2.set(year, month, date);
long milliseconds1 = calendar1.getTimeInMillis();
long milliseconds2 = calendar2.getTimeInMillis();
long diff = milliseconds2 - milliseconds1;
long seconds = diff / 1000;
return seconds;
}
在上面代替year,month,date
我过去,我2011,10,1
越来越
1317510000
但是正确的答案是
1317427200
关于此的任何帮助对我都很有用。
根据您希望1317427200
成为输出的愿望,有几个问题需要解决。
首先,正如其他人提到的那样,java已经使用UTC 1/1/1970纪元。除非您具有怪异的语言环境规则,否则通常无需计算历元并进行减法。
其次,当您创建新的日历时,它会初始化为“现在”,因此它包括一天中的时间。更改年/月/日不会影响“时间”字段。因此,如果希望它代表日期的午夜,则需要在设置日期之前将日历清零。
第三,您尚未指定应该如何处理时区。夏令时可能会导致特定的壁挂日历所表示的绝对秒数有所不同,具体取决于JVM的运行位置。由于时代是UTC,我们可能想在UTC时间工作?您可能需要向与之连接的系统的制造商寻求澄清。
第四,Java中的月份为零索引。一月是0,十月是9。
放在一起
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
calendar.clear();
calendar.set(2011, Calendar.OCTOBER, 1);
long secondsSinceEpoch = calendar.getTimeInMillis() / 1000L;
那会给你 1317427200
问题内容: 我有一个DatePicker d;我需要获取日期的毫秒值。(自1970年以来的毫秒值) 我该怎么做? 问题答案: 创建一个日历对象,并从日期选择器和today.getTimeInMillis()中设置日期和时间。
在Java中,我们可以使用以毫秒为单位获取自epoch时间以来的当前时间戳,该时间戳是- 当前时间与世界协调时1970年1月1日午夜之间的差值,以毫秒为单位。
这看起来应该很简单,但到目前为止,我尝试的方法都不管用。基本上,我想将一个文件时间(以毫秒为单位)从1970年(通常)转换为一个临时的Accessor,然后再转换为一个RFC1123格式的字符串。然而,虽然我可以得到编译的示例,但也会出现运行时错误。例如: 结果 线程“main”java中出现异常。时间世俗的UnsupportedTemporalTypeException:不支持的字段:DayOf
问题内容: 我正在教堂里工作,以前有很多活动,这些活动从今天开始,如何存储日期? 这仅适用于以下日期,我如何存储今年之前的日期? 我应该使用哪种数据类型?现在,我已经把我列式 问题答案: 很好 它可以存储从1000到9999 AD的 值。 当您只需要一个日期值而没有时间部分时,将使用DATE类型。MySQL检索并以’YYYY-MM-DD’格式显示DATE值。支持的范围是“ 1000-01-01”至
问题内容: 你如何做相反,你把时间+日期,并获得秒数? 我有类似的字符串,并且我想获取从纪元到2009年7月9日之间的秒数。 我已经尝试过,但是我不知道如何正确使用它,或者它是否是正确的命令。 问题答案: 如果您是由于搜索引擎告诉您这是获取Unix时间戳的方法而到达此处的,请停止阅读此答案。向下滚动一个。 如果想扭转,那就想。 您可以使用将字符串转换为时间元组,该时间元组将返回一个时间元组,您可以
问题内容: 我有一个数字,它表示自1904年1月1日上午12:00(世界标准时间)以来的纳秒数。我希望实例化一个代表该日期的对象。我应该如何进行? 问题答案: 首先,您需要将代表 纳秒 的 数字 转换为 毫秒 。 然后,对于给定的日期字符串,获取自unix时间 Epoch 以来的总毫秒数,然后向其添加更早转换为毫秒的数字。 这是工作代码: 添加一个。