Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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日历对象设置周日午夜后的时间_Java_Calendar - Fatal编程技术网

正在尝试为java日历对象设置周日午夜后的时间

正在尝试为java日历对象设置周日午夜后的时间,java,calendar,Java,Calendar,我以毫秒为单位计算时间,并在特定时间将其设置为Calendar对象。 这个初始时间只是对时间的估计,但实际时间是基于星期日午夜之后的一周时间(毫秒) 因此,我需要以某种方式为Calendar对象设置一周的时间,但我很难弄清楚如何做到这一点 有没有一种巧妙的方法可以做到这一点?我使用的是最好的Java对象吗。 我已经很长时间没有使用Java了,所以它对我来说是非常新的 这里有一个例子:发生了两件事。1) GM时间(以毫秒为单位)表示最大值时间。2001年3月1日01:00:00星期二。然后我得到事

我以毫秒为单位计算时间,并在特定时间将其设置为Calendar对象。 这个初始时间只是对时间的估计,但实际时间是基于星期日午夜之后的一周时间(毫秒)

因此,我需要以某种方式为Calendar对象设置一周的时间,但我很难弄清楚如何做到这一点

有没有一种巧妙的方法可以做到这一点?我使用的是最好的Java对象吗。 我已经很长时间没有使用Java了,所以它对我来说是非常新的

这里有一个例子:发生了两件事。1) GM时间(以毫秒为单位)表示最大值时间。2001年3月1日01:00:00星期二。然后我得到事件2)格林尼治标准时间(毫秒),从周日午夜(2001年1月1日)0:00:00开始。就说从那一天起已经是20000毫秒了。因此,现在我需要知道如何设置午夜后的实际日期/时间,以便查看实际时间

Calendar nowCal = (however you get/set the time you care about, as a Calendar)
long now = nowCal.getTimeInMillis();
long millis_today = now % 86400;
long millis_in_days = (nowCal.get(Calendar.DAY_OF_WEEK) - Calendar.SUNDAY) * 86400L;
long time_since_midnight_sunday = millis_in_days + millis_today;

您使用的是什么版本的Java?如果可以使用Java8,请使用新的
Java.time
包。否则,你能利用乔达的时间吗?(一个外部日期/时间API,比
java.util.Calendar
好得多)我正在使用Java7,我认为我不能添加任何外部API。谢谢你的想法!好的,在这种情况下,您可能应该坚持使用
日历
日期
。你对哪个时区感兴趣?如果有夏时制转换,您希望发生什么?您应该提供示例输入和所需输出-您的问题目前并不十分清楚。所有时间都是GMT。原始时间应该在实际设置时间的几秒钟或几分钟内。所以基本上你可以得到一个GMT时间,以毫秒为单位,它提供了我感兴趣的时间的基本日期/小时/秒/毫秒。然后我得到一个从周日午夜开始的偏移量,以毫秒为单位。我用这个偏移量来计算实际的精确时间。那么你对哪个周日午夜感兴趣呢?最近的一次?下一个?还有别的吗?再说一次,目前还不清楚。