Android AlarmManager在时区或日光班次上安排
我有一种使用AlarmManager安排提醒的逻辑.我需要实现以下内容: 逻辑1 :当用户更改时区时,例如从英国(UTC+0)到中欧(UTC​​+1),警报应遵循时区. 例如,安排在UTC+0下午3点的提醒应在4pm UTC+1 发射 逻辑2 :发生时间变化时,例如,时间转移到春季的日光节省时间(从UTC+1到UTC+2),警报应保持原始时间 例如,安排在UTC+1下午3点发射的提醒应在下午3点发射UTC+2 我该如何实现?截至目前,我还没有特定的逻辑,所有警报都遵循逻辑1 .我发现无法确定何时发生时间变化. 调度逻辑非常简单: LocalDateTime reminderTime = LocalDateTime.of(...) ZoneOffset currentOffsetForMyZone = ZoneId.systemDefault().getRules().getOffset(Instant.now()); reminderTime.toInstan
0 2024-02-13
编程技术问答社区
如何检测安卓系统中的夏令时转换
我有一个具有服务女巫的Android应用程序根据某些时间计算发射警报. 问题是时区更改时( :对于位于法国的用户,从UTC+1到UTC+2 ).该应用程序未通知该更改,因此,它会延迟发射警报. 我已经检查了Android timezone api 一些可以帮助的方法,例如: p> indaylighttime(日期时间) ) getdstssavings() p> 是否有可能知道何时发生变化,以便在我的计算算法中考虑它? btw:我已经从stackoverflow中检查了很多博客和q/a,但是 没有帮助:( 编辑(清单文件和接收器类): 这是我的清单:
4 2024-02-03
编程技术问答社区
安卓报警管理器和夏令时/时区/时间变化?
我正在编码一个闹钟应用程序,我想知道会发生什么,例如,当我用AlarmManager设置一些闹钟时,例如在时间2:59 AM(这不是我的闹钟的时间,这只是我的时间设置一些警报),然后在上午3:00,从夏季到冬季(DST)会有自动时间更改.我的预定警报会发生什么?我在文档中没有发现什么,而且测试并不容易,至少我必须更改日期并等待几个小时...我没有那么耐心;) 下一个问题 - 我也很好奇,当用户更改时区时,用AlarmManager设置的警报会发生什么.幸运的是,这很容易测试,我发现Android非常"聪明",并且会自动重新安排警报.因此,当在我的时区中是9:00,然后在10:00设置警报,然后切换时间区域(+1小时),实际时间为10:00,Android将警报重新安排为预期的11:00.但是,这很好,但是,我在文档中也没有找到任何东西... 有人有更多官方信息吗? thx 解决方案 RTC和RTC_WAKEUP使用System.currentTimeMillis()作
0 2024-01-29
编程技术问答社区
jodatime 如何知道是否开启了夏令时
我有一个需要时区的API.例如.如果我在加利福尼亚州,当日光节省燃料(加利福尼亚州,PDT为GMT -7)和-8时,我需要将其传递-7,当日光节省掉落时.但是我无法弄清楚在当前日期,储蓄日期是否打开或关闭的方法. Date date1 = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(date1); double[] coords = db.getCoords(id1); double latitude = coords[0]; double longitude = coords[1]; double timezone = -7; /* For Pacific daylight time (GMT - 7)*/ ArrayList Times = Class.foo(cal, latitude, longitude, timezone); 我已经安装了Jodatime,即使在那里我
6 2024-01-29
编程技术问答社区
在转换时区时照顾到夏令时
我有一个红移数据表,其中所有时间值都存储在CST中,并且我根据邮政编码(位置)将时间值转换为相应的时区. 当我这样做时,我知道所有时间值都是在标准时间中,因此我的功能使用 CASE WHEN **** convert_timezone('CST', 'EST', time_column) WHEN **** convert_timezone('CST', 'MST', time_column) .... END 一旦我们进入日光节省时间,这可能不适用. 我该如何处理这一点,以免在2018年3月和将来再次修改SQL查询? 解决方案 不要使用时区缩写.它们有些模棱两可,只能指时区的一个方面.相反,请使用完整的在 使用时区名称 如果您使用时区名称指定时区,则convert_timezone会自动调整夏令时(DST)或任何其他本地季节性协议,例如夏季时间,标准时间或冬季时间,这是有效的在"时间戳"指定的日期和时间期间的那个时区.例如,"欧洲/伦敦"在
0 2024-01-25
编程技术问答社区
AlarmManager:如何安排每天的闹钟并处理时间变化
我需要在给定的小时每天设置警报.我正在使用AlarmManager.RTC_WAKEUP编程警报,因此它将系统时间用作参考.我正在设置警报以在所需的时间首次执行,然后每天重复: alarmManager.setRepeating( AlarmManager.RTC_WAKEUP, getTimestampToday("12:00"), AlarmManager.INTERVAL_DAY, pendingIntent ); getTimestampToday方法在所需的时间返回今天的长度戳记.它通过获取今天的本地日期,然后设置所需的时间,最终将其转换回时间戳(这是基于UTC). 这里的问题是警报应根据当地时间工作.因此,如果在安排警报后发生更改的时间(例如,DST时间更改或用户去另一个国家,或者他手动更改日期,时间或时区),则警报将在错误的当地时间发射下次. 示例: 警报设置为在上午
4 2024-01-22
编程技术问答社区
如何在Apache Airflow中正确处理夏令时?
在气流中,一切都应该是UTC(不受DST的影响). 但是,我们有工作流,这些工作流根据受dst的影响. 一个示例场景: 我们有一项工作安排的工作日期为东部上午8:00,时间表间隔为24小时. 每天在东部凌晨8点,调度员发现自上次跑步以来已经24小时了,并经营工作. DST发生了,我们损失了一个小时. 今天在东部凌晨8点,调度程序看到它只有23个小时,因为机器上的时间是UTC,直到东部凌晨9点才能跑步,这是迟到的. 有没有办法安排dags,以便在更改时间后的正确时间运行? 解决方案 何时询问气流在1.8.x版本上的 版本. 此功能现在是内置的,如气流1.10. 应正确处理airflow.cfg和DST中的时区. 其他解决方案 远离我的头顶: 如果您的计算机是时区,请在UTC中的EDT设置DAG,以在EST 和上午8点运行.像0 11,12 * * *.让第一个任务成为快速算子.然后使用PYTZ之类的东西来本地化当前时间.如果在您
6 2024-01-20
编程技术问答社区
Oracle.ManagedDataAccess读取DST日期不正确
我正在编写一个.NET应用程序,该应用程序在Oracle 11.2.0.2.0数据库上运行,该数据库存储在类型" Timestamp(6)带有本地时区域"的列中.当存储在列中并且属于DST的日期时,使用Oracle.ManagedDataAccess库时,日期读取不正确.它似乎总是正确编写/更新日期.另外,使用oracle.dataaccess库时,它始终可以正确处理日期. 在我的示例中,我使用时区"美国/new_york"和2014年8月1日的日期/时间12:00:00.这是一个代码段,读取日期错误的代码: IDbConnection cxn = new Oracle.ManagedDataAccess.Client.OracleConnection(ConnStr); // Using the following library works correctly: // IDbConnection cxn = new Oracle.DataAccess.Client.Or
0 2024-01-06
编程技术问答社区
TimeZoneInfo DST与Windows的设置对比
do 我正在尝试在用户无法访问Windows的信息亭模式应用中复制这些设置,并且我设法使所有内容都可以正常工作,包括使用或不使用DST的时区域设置Tzutil,但是在测试时,我注意到一些问题时区DST设置(如莫斯科)与Windows不同步. 我们知道俄罗斯几年前摆脱了DST,所以当我去Windows并选择莫斯科作为时区时,我看到了: 启动我的测试控制台应用程序(.NET 4.6.1),然后从GetSystemTimeZones中获取我当前的时区,我发现它实际上确实支持DST: 如果SupportSdayLightSavingTime是True,是否应该在Windows设置中启用切换开关? 我什至通过调用win32函数 getDynamictimeZoneInformation 检查DynamicDaylightTimedisabled是否为True还是FALSE(尽管我不完全确定这是否反映了Windows中的设置).我首先尝试了我的实时区(赫尔辛基),结果是:
0 2024-01-06
编程技术问答社区
从通用或本地DateTime加/减的最佳实践
我正在尝试添加DateTime周围的包装器,以包括时区信息.这是我到目前为止所拥有的: public struct DateTimeWithZone { private readonly DateTime _utcDateTime; private readonly TimeZoneInfo _timeZone; public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone) { _utcDateTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified), timeZone); _timeZone = timeZone; } public DateTime UniversalTime { get { return
2 2024-01-06
编程技术问答社区
检测当前是否启用了DST
我需要找到一种简单的方法来了解本地计算机的"自动调整时钟以保存日光为节省时间"选项. 如果该选项已打开,我需要知道它是否当前应用了(即当前是系统中的DST). 预先感谢 解决方案 您可以找到当前系统默认时区以及当前是否使用DST(夏令时保存时间)(.net 3.5 onwards): TimeZoneInfo zone = TimeZoneInfo.Local; if (zone.SupportsDaylightSavingTime) { Console.WriteLine("System default zone uses DST..."); Console.WriteLine("In DST? {0}", zone.IsDaylightSavingTime(DateTime.UtcNow)); } else { Console.WriteLine("System default zone does not use DST."); }
8 2024-01-05
编程技术问答社区
将某人的当地时间转换为UTC时间
我在时区有点迷路:) 我的数据存储在UTC中. 该服务器位于荷兰,因此我们居住在UTC + 1(现在,使用Daylightsavingtime,在UTC + 2中) ) 现在客户说:给我8月5日的数据. 所以我必须从"他的时间"计算出UTC时间. 为此,我必须知道: 您的UTC偏移是什么(我们将其存储在他的个人资料中,例如UTC -6) 您是否在日光持续时间(因为那样我们必须添加+1并使UTC偏移-5) 然后我的问题: 我可以问.net框架:国家xx是否有日光持续时间? 我可以问.net框架:当时是08-05-2010T00:00:00:00:00:00 xxx daylightsavingtime当时吗? 我一直在尝试.tolocaltime(),但这仅给我在服务器上的本地时间,这不是我想要的,我想用用户的时区进行计算,也是如此在那个特定的时间点,如果他/她在日光下播放时间 我也看过这个VB示例: TimeZone As T
6 2024-01-05
编程技术问答社区
将某人的当地时间转换为UTC时间
我在时区有点迷路:) 我的数据存储在UTC中. 该服务器位于荷兰,因此我们居住在UTC + 1(现在,使用Daylightsavingtime,在UTC + 2中) ) 现在客户说:给我8月5日的数据. 所以我必须从"他的时间"计算出UTC时间. 为此,我必须知道: 您的UTC偏移是什么(我们将其存储在他的个人资料中,例如UTC -6) 您是否在日光持续时间(因为那样我们必须添加+1并使UTC偏移-5) 然后我的问题: 我可以问.net框架:国家xx是否有日光持续时间? 我可以问.net框架:当时是08-05-2010T00:00:00:00:00:00 xxx daylightsavingtime当时吗? 我一直在尝试.tolocaltime(),但这仅给我在服务器上的本地时间,这不是我想要的,我想用用户的时区进行计算,也是如此在那个特定的时间点,如果他/她在日光下播放时间 我也看过这个VB示例: TimeZone As T
0 2024-01-05
编程技术问答社区
具有本地时间和DST的.Net DateTime
我恐怕我真的不明白.net的DateTime课程如何处理本地时间戳(我住在德国,所以我的语言环境是de_de).也许有人可以启发我一点; - ) DateTime构造函数可以使用年,月份等来调用.另外,可以提供Local,Utc或Unspecified(=默认值)的值. 示例: DateTime a = new DateTime(2015, 03, 29, 02, 30, 00, DateTimeKind.Local); DateTime b = new DateTime(2015, 03, 29, 02, 30, 00, DateTimeKind.Utc); DateTime c = new DateTime(2015, 03, 29, 02, 30, 00, DateTimeKind.Unspecified); DateTime d = new DateTime(2015, 03, 29, 02, 30, 00); 根据定义,值C和D是相同的.但是,如果我彼此比
2 2024-01-04
编程技术问答社区
.NET的TimeZoneInfo对夏令时有误
任何人都可以帮助理解这一点. Microsoft在3.5中的TimeZoneInfo课程告诉我,GMT日期并不是东部时区的日光节省,但事实并非如此. // Get Eastern Timezone TimeZoneInfo tzEasternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); // Convert to EST DateTime easternTime = TimeZoneInfo.ConvertTime(DateTime.Parse("2009-11-01T05:00:00Z"), tzEasternZone); // Daylight saving IS in effect on this date, but Microsoft doesn't think so Boolean isDaylight = easternTime.IsDaylightSavingTime()
6 2024-01-04
编程技术问答社区
如何判断是否为英国夏令时?
我有以下代码,应该返回60的抵销(表明目前在英国,我们是在英国夏季 - 即距GMT之前60分钟): var info = TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time"); DateTimeOffset localServerTime = DateTimeOffset.Now; double off = localServerTime.Offset.TotalMinutes; return off; 但是,它返回0. 任何人都可以帮助我解决这个问题吗? 解决方案 使用 timezoneinfo.iszoneinfo.isdaylightsavingtime time方法( dateTimeOffset)查找当前为您的时区节省日光. var info = TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time"); Da
0 2024-01-04
编程技术问答社区
.NET DateTime.Now在时区改变时返回不正确的时间
这个问题发生在日光节省时间更改期间.更改发生后,我们注意到我们的服务器应用程序开始写入日志不正确的时间 - 提前一个小时,这意味着.NET缓存时区偏移.我们必须重新启动应用程序以解决此问题. 我写了一个简单的应用程序来复制这个问题.当我在应用程序运行时更改时区时,DateTime.现在,属性继续在旧时区生成时间. 除重新启动应用程序外,是否有人知道此问题是否有解决方法? 解决方案 是的,当前时区是缓存的.有充分的理由,它可以避免使用DateTime的破损代码麻烦.现在可以实现经过的时间测量.当时间突然变化一个小时或更长时间时,这种代码往往会遭受心脏攻击. 您必须调用System.globalization.cultureinfo.clearcacheddata()重置缓存值.下一个呼叫DateTime.现在将给新的本地时间.如果您完全使用.NET 3.5 TimeZoneInfo类,则还需要调用其clearCachedData()方法.您可以将SystemEvents.Ti
8 2024-01-02
编程技术问答社区
带有夏令时的xslt时区转换
我正在与XSLT合作并使用fn:current-datetime()获取当前日期时间( https://www.w3.org/tr/xpath-functions/#func-current-datetime ).返回的时间在UTC.我需要将其转换为PST.我看到fn:aptive-datetime-to-to-to-to-to-to-to-to-tokone( 解决方案 X Path的操作时区偏移的功能完全在数字(持续时间)偏移方面工作,例如UTC -5小时或UTC +10小时.他们不了解民用时区名称或日光节省的调整. 一个例外是格式 - 日期[时间]函数,可以使用第五个参数将转换为特定位置的本地时区,例如" America/New_york" - 但这是否有些定义是有些实现的这样的名字被认可.从规格: 如果以IANA时区的形式提供$ place参数 实施识别的名称,然后是日期或时间 格式化已调整为适用的时区偏移 时区.例如,如果XS:DateTime值2010-02-1
4 2023-12-24
编程技术问答社区
在Vista/Win7上用WMI检查夏令时的情况
我如何找出我使用的计算机是否有日光节省生效的时间? (最好使用WMI) 根据,我可以查询SELECT DaylightInEffect FROM Win32_ComputerSystem,但是属性DaylightInEffect在Vista或Win7上不支持.由于我的程序将在各种系统上运行(XP,Vista,7),因此我希望某种可移植的方法来查找. 解决方案 记录的支持的OS列表不准确,当我尝试时,这在Win7上可以正常工作.我想不出任何原因都不会在任何其他操作系上得到支持,很容易找到Win32 API(getTimeZoneInformation). 您可以使用其他解决方案 这是一个布尔函数,使用问题中引用的WMI查询实现. (相关:我如何使用vbscript?) Function IsDaylightInEffect() Const sComputer = "." Dim oWmiService : Set oWmiService
6 2023-12-11
编程技术问答社区