天道酬勤,学无止境

time

java.time DateTimeFormatter 使用灵活的后备值解析(java.time DateTimeFormatter parsing with flexible fallback values)

问题 我正在尝试将一些代码从 joda 时间移植到 java 时间。 JodaTime 可以像这样指定年份的后备值 parser.withDefaultYear((new DateTime(DateTimeZone.UTC)).getYear()).parseDateTime(text); 无论解析器看起来如何(如果它包括一年),它都会被解析。 java.time 在那里变得更加严格。 即使有DateTimeFormatterBuilder.parseDefaulting()方法,它允许您指定回退,这仅在您要解析的日期中未指定该特定字段或标记为可选时才有效。 如果您对传入的日期格式没有任何控制权,因为它是用户提供的,这使得调用parseDefaulting变得非常困难。 是否有任何解决方法,我可以指定诸如通用后备日期之类的东西,如果未指定它们的值将被格式化程序使用,或者当它们在格式化程序中指定时,我如何配置根本不使用的后备值? 下面是最小、完整和可验证的示例。 public static DateTimeFormatter ofPattern(String pattern) { return new DateTimeFormatterBuilder() .appendPattern(pattern) .parseDefaulting(ChronoField.YEAR, 1970)

2022-01-16 15:57:18    分类:技术分享    java   datetime   time   java-time   datetime-parsing

AlarmManager 不会在 Android Lollipop 中按时触发(AlarmManager not fires on time in Android Lollipop)

问题 我正在使用此代码在 Android KitKat 和棒棒糖中设置警报: AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); Intent i = new Intent(AlarmService.this, Reciver.class); PendingIntent pi = PendingIntent.getBroadcast(AlarmService.this, 1201, i, PendingIntent.FLAG_UPDATE_CURRENT); Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, 9); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); am.setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi); 此代码在 Android KitKat 上运行良好,但在 Android Lollipop 上它的火灾延迟 10 或 5 分钟。 回答1 这是 Android Lollipop 中的一个已知错误,其他几位用户已在 Android 的官方错误跟踪器上报告了此错误。 此问题没有立即解决方案

2022-01-16 14:58:57    分类:技术分享    android   time   alarmmanager   android-5.0-lollipop

How do I pass the value of an input type time to a Date object?

This function converts time to 12hr format, credits to a contributor on Stack Overflow for this function: JS function ampm(date) { var hours = date.getHours(); var minutes = date.getMinutes(); var ampm = hours >= 12 ? 'pm' : 'am'; hours = hours % 12; hours = hours ? hours : 12; // 0 should be 12 minutes = minutes < 10 ? '0'+minutes : minutes; // if minutes less than 10, add a 0 in front of it ie: 6:6 -> 6:06 var strTime = hours + ':' + minutes + ' ' + ampm; document.getElementById('time').value = strTime; return strTime; } ////This is how the value of the time input is supposed to be displayed

2022-01-16 14:28:51    分类:问答    javascript   html   time

currentTime 是否介于 18:00 和 2:00 之间(Does currentTime fall between 18:00 and 2:00)

问题 我有一个动态开盘和关盘时间的酒吧时间表,我必须计算 currentTime 是否在今天的开盘时间内。 问题是开放和关闭时间不在同一天。 如何计算 currentTime 是否在多天的特定时间范围内? 我在这个项目上使用 jquery。 回答1 如果你使用 new Date().getTime(); 这将返回自特定时间以来的毫秒数(这恰好是 1970 年 1 月 1 日)。 如果您对开始和结束时间以及当前时间都这样做,如果您的当前时间介于开始和结束之间,那么它将大于开始毫秒并且小于结束毫秒。 只是一个注释,而不是Date().getTime(); 你实际上可以这样做+new Date; 我从浏览网络中学到的东西。 谷歌再次获胜:)。 这是因为 + 本质上将日期转换为 int。 回答2 您可以使用 javascripts 日期对象来计算它,例如: var start = new Date(2012,6,20,13).getTime(); var now = new Date().getTime(); var end = new Date(2012,6,21,2).getTime(); if( (start < now ) && (now < end )) { console.log("opened"); } else { console.log("closed"); }

2022-01-16 13:39:30    分类:技术分享    javascript   jquery   time

如何在Java中获取时间分隔符?(How to get the time separator symbol in Java?)

问题 有没有办法在Java中获取时间分隔符':'? 它是某处的常数还是吸气剂? 也许有相当于 File.separator 的东西? 我的时间字符串由DateFormat.getTimeInstance(DateFormat.SHORT, locale).format(date);返回 在这种情况下,当以后有人想要解析这个字符串时,只使用 ':' 是否安全? 回答1 我认为使用':'是安全的。 它在SimpleDateFormat中硬编码。 例如: if (text.charAt(++pos.index) != ':') 回答2 尝试以下 public static String getTimeSeparator(Locale locale) { String sepValue = ":"; DateFormat dateFormatter = DateFormat.getTimeInstance(DateFormat.SHORT, locale); DateFormatSymbols dfs = new DateFormatSymbols(locale); Date now = new Date(); String[] amPmStrings = dfs.getAmPmStrings(); String localeTime = dateFormatter.format(now)

2022-01-16 12:15:38    分类:技术分享    java   time

使用 JS 服务器时间而不是客户端时间来避免这种用户可以通过更改本地机器时钟来操纵结果的行为(Using JS server time instead of client time to avoid this behavior where users can manipulate results by changing their local machine clock)

问题 预期行为 在每次刷新时向用户显示来自arr数组的随机值(颜色)。 每天应该将不同的文件( file-1.json 、 file-2.json等)加载到arr中。 这应该在 00:00 UTC 服务器时间重置。 仅应显示当天相关文件中的值。 意外行为 一切正常,直到用户更改本地机器/手机上的时钟。 然后他们也可以有效地看到未来和过去的价值。 日期/时间可以在客户端进行操作,这是不应该发生的。 每个人都应该得到服务器的时间,不管那是什么。 例子 好:如果您在 2020-04-18 访问/刷新该站点,您应该会从file-1.json中选择随机颜色。 好:如果您在 2020-04-19 访问/刷新该网站,您应该会从file-2.json中选择随机颜色。 不好:另一方面,如果您在 2020-04-18 将本地时钟更改为 2020-04-19,那么您应该无法从 2020-04-19 获得随机颜色,因为该日期在未来. 您仍然应该从今天的文件中获得一个值,因为它仍然是 2020-04-18 服务器时间。 script.js : // Store today's date const today = new Date(); var arr = []; // Define milliseconds per day const msPerDay = 1000*60*60*24; //

2022-01-16 11:55:42    分类:技术分享    javascript   jquery   json   date   time

AlarmManager not fires on time in Android Lollipop

i'm using this code to set Alarm in Android KitKat and lollipop: AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); Intent i = new Intent(AlarmService.this, Reciver.class); PendingIntent pi = PendingIntent.getBroadcast(AlarmService.this, 1201, i, PendingIntent.FLAG_UPDATE_CURRENT); Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, 9); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); am.setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi); this code is works good on Android KitKat but on Android Lollipop its fires With 10 or 5 minutes delayed.

2022-01-16 11:54:02    分类:问答    android   time   alarmmanager   android-5.0-lollipop

颤振中的 Future.delayed 与 Timer 有什么区别(What is the difference between Future.delayed vs Timer in flutter)

问题 我想知道 Future.delayed 和 Timer 方法之间延迟代码执行的区别。 两者似乎都在做同样的事情。 未来延迟 Future.delayed(const Duration(milliseconds: 500), () { /*code*/ }); VS 定时器 Timer _timer = new Timer(const Duration(milliseconds: 500), () { /*code*/ }); 回答1 对我来说有一些不同。 Future.of返回一个 Future。 Timer不返回任何内容。 因此,如果您的延迟代码返回了您继续工作所需的任何内容,那么Future就是您要走的路。 另一个区别是Timer类提供了一种重复触发的方法。 此引用来自 Timer Class Reference 文档本身 可以配置为一次或重复触发的倒数计时器 使用Timer进行重复的示例可能是 Timer.periodic(Duration(seconds: 5), (timer) { print(DateTime.now()); }); 另一个常见的例子是创建一个秒表来测量代码中的计时,通常使用Timer看到它。 格鲁!! 回答2 定时器: Timer()创建一个Timer对象,它会在延迟后运行您的计算。 由于您获得了对该Timer对象的引用

2022-01-16 11:44:24    分类:技术分享    flutter   dart   time   delay   future

如何获得基于两次 android 的 1Hour 的时隙间隔(How to get Time Slot interval of 1Hour based two times android)

问题 如何获得基于两次 android 的 1Hour 的时隙间隔我想将时隙存储在 arraylist 中。 我有开始时间和结束时间。 根据开始时间,它应该创建时间段。 例如,如果开始时间是上午 9:00,结束时间是晚上 21:00,那么它应该像下面这样添加到数组列表中 上午 9:00 上午 10:00 上午 11:00 下午 12:00 下午 13:00 下午 14:00 ..... 以此类推 晚上 21:00 回答1 你可以这样做: String firstDate = "26/02/2019"; String firstTime = "00:00 AM"; String secondDate = "26/02/2019"; String secondTime = "12:00 PM"; String format = "dd/MM/yyyy hh:mm a"; SimpleDateFormat sdf = new SimpleDateFormat(format); Date dateObj1 = sdf.parse(firstDate + " " + firstTime); Date dateObj2 = sdf.parse(secondDate + " " + secondTime); System.out.println("Date Start: "+dateObj1)

2022-01-16 09:02:59    分类:技术分享    java   android   arraylist   time   java-time

在与系统时钟同步的python中每5分钟运行一次函数的最佳方法是什么?(What is the best way to run a function every 5 minutes in python synced with system clock?)

问题 我想每 5 分钟运行一次函数并让它与时钟同步。 如果我使用 time.sleep(60*5),时间开始漂移,因为我的函数增加了一点处理时间。 这是运行与时钟同步的函数的好方法,还是在 python 中有更好的方法? def run(condition): def task(): #run data here pass runOnce = True while condition: if dt.datetime.now().minute % 5 == 0 and dt.datetime.now().second == 0 and runOnce: runOnce = False task() elif dt.datetime.now().second != 0 and not runOnce: runOnce = True else: time.sleep(0.5) run(True) 回答1 你可以试试APScheduler。 它使用 python 的datetime模块来控制执行,因此应该在很大程度上独立于代码的特性。 from apscheduler.scheduler import BlockingScheduler @sched.scheduled_job('interval', id='my_job_id', minutes=5) def job_function(

2022-01-16 08:19:49    分类:技术分享    python   time   delay   clock   modulo