Tag: calendar

将字符串转换为星期几(不是确切的日期)

我收到一个String ,这是一周的拼写日,例如星期一。 现在我想获得当天的常量整数表示,它在java.util.Calendar 。 我是否真的必须做if(day.equalsIgnoreCase(“Monday”)){…}else if(…){…}我自己? 有一些简洁的方法吗? 如果我挖掘SimpleDateFormat并将其与Calendar混合,我生成的行几乎与键入丑陋的if-else-to-infitity statetment一样多。

使用Java日历时忽略DST

我有一个绘制时间序列图的GUI。 用户通过在文本框中输入值来输入他们想要绘制的日期。 例如,如果他们输入25/07/13 22:00和26/07/13 00:00 ,图表应绘制从25日22:00:00到次日早晨00:00:59的数据。 用户输入的时间被解析为Calendar对象。 我的问题来自DST。 用户不关心DST,因此他们想要看到的只是这两次之间的图表。 但是, Calendar对象确实关心DST,因此我的“to”日期当前不是00:00,而是01:00。 (我在伦敦,我们目前是格林威治标准时间+ 1小时的夏令时)。 我想有效地忽略DST,并且当我想绘制图形时,好像一切都是GMT + 0。 我怎样才能做到这一点?

从字符串开始的Java星期几

我有这个简单的代码: SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”); Date date = format.parse(“2011-10-29”); calendar.setTime(date); Log.d(“Debug”,”Day of the week = “+(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY)); 十月二十九日是星期六,为什么我会弄错?

Primefaces日历 – 使用EL禁用特定日期

所以从我之前的问题, 在p:日历上禁用特定日期 ,我知道我可以使用Javascript禁用特定日期,如下所示: var disabledDays = [“5-15-2013”, “6-23-2013”]; function disableAllTheseDays(date) { var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); for (i = 0; i < disabledDays.length; i++) { if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) { return [false]; } } return [true]; } 有: 但是,我的问题是如何使用EL表达式在disabledDays数组中存储日期? 我需要这样做,因为我需要禁用的日期各不相同。 禁用日期需要是动态的。 如果我不能用EL表达式做到这一点,是否还有使用具有动态数据的数组? 谢谢

如何在日历Api中禁用Google的“video通话”默认设置?

我正在实施一个在日历中创建活动的软件,但是当我创建它时,Google会默认添加一个video群聊(video通话)链接。 多数民众赞成使这一事件有点令人困惑。 我知道您可以通过转到用户高级选项并取消选中该选项来消除此问题,但我无法访问它。 我正在使用java和OAuth 2.0来获取具有权限的令牌,并使用calendar v3 api来创建事件。 无论如何你可以在整个代码中消除这个环聊链接吗? 在我发现的文档中: myEntry.setHangoutLink(null); 但它仍然无效。

考虑夏令时,将本地时间转换为UTC时间,反之亦然

我知道如何将本地时间转换为UTC时间,反之亦然。 但是,在执行此操作时,我对夏令时(DST)处理非常困惑。 所以任何人都可以回答以下问题: 1.在时区之间转换时,java内部处理DST吗? 2.在时区之间转换时我需要做些什么? 3.更清楚地解释这个问题的任何好文章? 提前致谢。

与Google日历/ Outlook同步的2种方式

我在我的应用程序中使用FullCalendar来显示通过我们自己的应用程序创建的事件。 我有一个用于创建/更新事件的添加/编辑表单。 这些事件存储在应用程序使用的db中。 我需要更进一步,需要将Google和Outlook日历同步到我的日历中。 这应该是2路同步即 如果我在日历中创建/编辑/更新活动,则应在Google / Outlook日历中创建/编辑/删除该活动。 反之亦然。 如果我在Google / Outlook日历中进行了一些更改,则应在我的日历中显示。 我想你实现这个想法: 我应该获取Google / Outlook的所有事件并将它们导入我的数据库,然后在我的日历视图中显示它们。 这在技术上是否可行? 即将通道的整个事件集导入我的数据库。 我是否应该通过Google / Outlook API进行GET获取特定视图的事件,我现在正在我的日历中(我将有我的日历视图的开始数据和结束日期)并将它们显示在我的日历中(即我没有将这些外部事件存储在我的数据库中)。 如果用户希望对应通过其创建/更新和删除API调用直接更新到Google / Outlook日历的事件进行任何更改。 什么应该是最好的方法? 编辑: 我去了https://calendar.sunrise.am/ (日历同步网络应用程序之一)并注意到了 即他们允许许多不同的应用程序日历/任务同步到他们的日历中。 看到我觉得将所有这些应用程序的所有事件存储到我们自己的应用程序的数据库中是不可行的。 如果通过我的应用程序对这些事件进行了任何更改,我应该调用这些应用程序的API来将更改转换为他们的应用程序(Google日历,Outlook等)。 你的想法是什么?

如何从java中获取时区偏移量的时区?

我知道如何相反。 给出了一个时区我可以通过以下代码片段获得时区偏移量: TimeZone tz = TimeZone.getDefault(); System.out.println(tz.getOffset(System.currentTimeMillis())); 我想知道如何从时区偏移中获取时区名称。 鉴于, timezone offset = 21600000 (以毫秒为单位; +6.00偏移量) 我想获得以下任何可能的时区名称的结果: (GMT+6:00) Antarctica/Vostok (GMT+6:00) Asia/Almaty (GMT+6:00) Asia/Bishkek (GMT+6:00) Asia/Dacca (GMT+6:00) Asia/Dhaka (GMT+6:00) Asia/Qyzylorda (GMT+6:00) Asia/Thimbu (GMT+6:00) Asia/Thimphu (GMT+6:00) Asia/Yekaterinburg (GMT+6:00) BST (GMT+6:00) Etc/GMT-6 (GMT+6:00) Indian/Chagos

WEEK_OF_YEAR在不同的机器上不一致

更新:好的,我似乎找到了答案的一半。 如果我使用无参数getInstance创建我的日历,我得到WEEK_OF_YEAR = 52.但是,如果我通过向getInstance提供Local.getDefaul()创建它,我得到WEEK_OF_YEAR = 1.完全没想到这个…我想,需要重新阅读日历文档。 从时间戳构建日历,对应于星期六,2011年1月1日00:00:00 GMT 。 使用java.util.Date,Calendar和TimeZone的相同代码在不同的机器上具有不同的行为(具有相同的区域设置); 除了WEEK_OF_YEAR之外,日历中的所有字段都是相同的。 在我的机器上它是52(实际上在我的两台机器上)。 在我的同事的机器上它是1(这似乎是正确的)。 import java.util.Date; import java.util.TimeZone; import java.util.Calendar; import java.util.Locale; public class CalendarTest { public static void main(String[] args) { Locale l = Locale.getDefault(); System.out.println(l); Long d = new Long(1293840000000l); Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone(“UTC”)); c.setTime(new Date(d)); System.out.println(c.toString()); } .. locale是en_US,但Calendar是: >java.util.GregorianCalendar[time=1293840000000, areFieldsSet=true, areAllFieldsSet=true, […]

将日期转换为不同的时区

我正在尝试使用Java日期和日历从一个时区到另一个时区进行简单的转换。 我试图运行以下代码 Calendar instance = Calendar.getInstance(TimeZone.getTimeZone(“Europe/London”)); Date date = instance.getTime(); System.out.println(date); GregorianCalendar instance2 = new GregorianCalendar(TimeZone.getTimeZone(“Europe/Athens”)); instance2.setTime(instance.getTime()); System.out.println(instance2.getTime()); 但仍然返回相同的日期,而不是+1小时…整个问题似乎微不足道,但我找不到任何简单的答案。 在此先感谢您的帮助。