- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的要求是根据日程安排的频率确定下一个日期。因此,如果频率为每日且第一个日期为 25-Oct-2015 23:59:59,下一个预产期应该正好相隔 24 小时,即 2015 年 10 月 26 日 23:59:59
Calendar.add(int field, int amount) 似乎正在处理相同的问题例如:
每日频率 -- calendar.add(Calendar.DATE, 1);
每周频率 -- calendar.add(Calendar.DATE, 7);
每月频率 -- calendar.add(Calendar.MONTH, 1);
以下是其代码摘要:
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar();
for(int i=0;i<10;i++) {
calendar.add(Calendar.DATE, 1);
System.out.println(calendar.getTime());
}
}
==================================================
Thu Oct 29 17:17:26 IST 2015 -- in all cases diff is 24 hrs
Fri Oct 30 17:17:26 IST 2015
Sat Oct 31 17:17:26 IST 2015
Sun Nov 01 17:17:26 IST 2015
Mon Nov 02 17:17:26 IST 2015
Tue Nov 03 17:17:26 IST 2015
Wed Nov 04 17:17:26 IST 2015
Thu Nov 05 17:17:26 IST 2015
Fri Nov 06 17:17:26 IST 2015
如果频率为每日且服务器位于东部时间 (EDT),则 add() 会发生一些异常
自 11 月 1 日起,夏令时设置的更改同样会反射(reflect)在添加中
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar();
calendar.setTimeZone(TimeZone.getTimeZone("US/Eastern"));
for(int i=0;i<10;i++) {
calendar.add(Calendar.DATE, 1);
System.out.println(calendar.getTime());
}
}
-------------------------------------
Wed Oct 28 17:18:14 IST 2015
Thu Oct 29 17:18:14 IST 2015
Fri Oct 30 17:18:14 IST 2015
Sat Oct 31 17:18:14 IST 2015
Sun Nov 01 18:18:14 IST 2015 -- here diff is of 24 + 1 hr
Mon Nov 02 18:18:14 IST 2015
Tue Nov 03 18:18:14 IST 2015
Wed Nov 04 18:18:14 IST 2015 -- else everywhere diff is 24 hours
Thu Nov 05 18:18:14 IST 2015
Fri Nov 06 18:18:14 IST 2015
如果第一个日期是 2015 年 10 月 25 日 23:59:59,在这种情况下,额外的 1 小时轮类会导致异常,如下所示2015 年 10 月 31 日 23:59:59,下一个日期是 2-11-2015 00:59:59
进一步观察代码,发现
// The rest of the fields (week, day or AM_PM fields)
// require time zone offset (both GMT and DST) change
// adjustment.
实际上服务器位于 EDT,我正在那里获取以下 I/O 关系。我只是尝试在 IST 中的本地实例上调试它。
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar();
for(int i=0;i<10;i++) {
calendar.add(Calendar.DATE, 1);
System.out.println(calendar.getTime());
}
}
Wed Oct 28 08:09:48 EDT 2015
Thu Oct 29 08:09:48 EDT 2015
Fri Oct 30 08:09:48 EDT 2015
Sat Oct 31 08:09:48 EDT 2015
Sun Nov 01 08:09:48 EST 2015
Mon Nov 02 08:09:48 EST 2015
Tue Nov 03 08:09:48 EST 2015
Wed Nov 04 08:09:48 EST 2015
Thu Nov 05 08:09:48 EST 2015
Fri Nov 06 08:09:48 EST 2015
使用库来确保生成的日期顺序正确的可靠方法应该是什么。
最佳答案
尝试下面的代码。下面的代码并不是简单地将 1 加到 DAY 或 MONTH 上。为了获得正确的结果,它增加了一天的毫秒数。
public static void main(String[] args) {
DateFormat formatter = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy");
Calendar calendar = Calendar.getInstance();
formatter.setTimeZone(TimeZone.getTimeZone("US/Eastern"));
calendar.setTimeInMillis(System.currentTimeMillis());
long time = calendar.getTimeInMillis();
for(int i=0;i<10;i++) {
System.out.println(formatter.format(calendar.getTime()));
time = time + 86400000;
calendar.setTimeInMillis(time);
}
}
确实可以通过更改行来更改日期格式 -
new SimpleDateFormat("E MMM dd hh:mm:ss z yyyy");
它给出输出 -
2015 年 10 月 27 日 08:15:59 美国东部时间
2015 年 10 月 28 日 08:15:59 美国东部时间
2015 年 10 月 29 日 08:15:59 美国东部时间
2015 年 10 月 30 日 08:15:59 美国东部时间
2015 年 10 月 31 日 08:15:59 美国东部时间
2015 年 11 月 1 日 07:15:59 美国东部时间
美国东部时间 2015 年 11 月 2 日 07:15:59
2015 年 11 月 3 日 07:15:59 美国东部时间
2015 年 11 月 4 日 07:15:59 美国东部时间
2015 年 11 月 5 日 07:15:59 美国东部时间
关于应用 DST 更改时 add() 的 java.util.GregorianCalendar 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367326/
我正在使用 python 2.7.3 和 pytz。 对于描述区域的给定时区(例如 America/New_York),我想知道该时区是否在一年中的部分时间遵守夏令时。我关心当前有效的时区定义。换句话
我从我的 vendor 那里得到一个时间戳,它是美国中部时间但没有夏令时。我需要使用 DST(如果适用)将其转换为 America/New_York。 我尝试只使用常规 JavaScript,然后转向
我想知道如果DST适用于该区域,是否有任何命令可以提供没有DST的时间。 我在谷歌上搜索了很多但没有得到正确的答案。我认为应该有简单的解决方案来获得它。 下面是 stackoverflow.com 上
我有一些调用 memcpy(my_dst, my_src, my_num_bytes) 的内核代码 - 有时我的 my_num_bytes 等于 0。奇怪的是,一些零星的实验(与Titan X、CUD
我正在尝试导入一些时间序列数据并将其转换为 UTC,以便我可以将其与另一个数据集合并。此数据似乎有 24 小时数据且没有 DST 调整。 This post给出了类似的答案,但他们只是放弃了这一行。我
我有一个计算旋转和平移矩阵的代码如下: matrix Matrix rt = new Matrix(3, 4); if (positiveCount[0] > positiveCount[1])
我的应用程序在“雅典”(希腊)时区运行。标准偏移量是“+02:00”。然而,在夏季,雅典有 DST,这意味着偏移量在一年中的特定时间段变为“+03:00”。这些时期不是标准的。他们改变了。 给定一个字
您好 stackoverflow 社区!我使用的是 MacBook Pro OS X 10.8.5。我从源代码下载了一个内置的 opencv,并用一个简单的例子对其进行了测试。它似乎工作正常。我尽量不
我从视频中加载了一张图片: Image imGray=cap.QueryGrayFrame(); 现在,我想使用 openCv 中的 cvCornerHarris 函数,如下所示: Image
我正在尝试在OpenCV 4.1.1中使用stereoRectifyUncalibrated。代码如下。 points1 = np.array([[2566, 542], [2567, 848], [
在 Airflow 中,一切都应该是UTC(不受DST的影响)。 但是,我们有一些工作流根据受DST影响的时区交付内容。 一个示例场景: 我们安排了一个工作,开始时间是美国东部时间8:00 AM,计划
MNIST For ML Beginners当我运行时,教程给我一个错误 print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: m
我已将模拟器设置为该时区:org.apache.harmony.luni.internal.util.ZoneInfo["CET",mRawOffset=3600000,mUseDst=true] 这
在我的网站上,用户可以为他们当前的时区设置首选项。我的数据库中有一堆日期时间,但我想每次都适本地显示,给定 A) 它们所在的时区,以及 B) 夏令时是否生效。 解决这个问题的最佳方法是什么? 最佳答案
我想知道 python 是否区分左手(左旋)和右手(右旋)时间戳。在夏令时本地化时间戳时,这会成为一个问题。 假设我在欧洲本地时间有右手标记的半小时值,其中 DST 更改发生在 2014 年 3 月
我正在测试如何根据夏令时的变化计算和显示日期(使用时区代码)。 在英国,2014 年 3 月 30 日凌晨 1 点,我们进入 DST,从 GMT 转到 BST。时间从 2014-03-30 00:59
我发现了有关 Java DST 更改的问题。当 DST(夏令时)发生的确切时刻时,特定时间可能会出现两次。 例如,对于 America/Sao_Paulo 时区,它从 2016 年 2 月 21 日星
根据Busybox FAQ ,时区的管理方式取决于我系统的 libc。对于我的嵌入式系统,如果我想更改时区,我需要创建一个从 /etc/localtime 到 TZ 数据库文件的符号链接(symbol
我说的是 union-find-disjoint data structure .互联网上有多种关于如何实现这一点的资源。到目前为止,我已经了解了联合的两种优化技术。第一个是通过变量 Rank 来“平
我也搜索了 PHP 手册和 StackOverflow,但没有真正找到我的问题的正确答案。我的日期存储在 UTC 中。现在,如果我这样做: $date = new DateTime('2012-03-
我是一名优秀的程序员,十分优秀!