我正在使用firebase并用Android构建一个应用程序。
我有一个日期选择器
,我可以在其中选择星期几、小时和分钟。
当我选择日期并按submit时,我不想存储当前日期,甚至不想存储所选日期,而是存储与所选星期相关的下一个日期。
假设我选择星期四,明天是星期四,我想保存当前用户选择的日期和时间。
当时我试过这样的方法:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DATE, dayOfWeek);
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
dateMatch = calendar.getTime();
小时和分钟很好,但是我如何存储第二天/月/年?
ZonedDateTime.of(
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.with( TemporalAdjusters.next( DayOfWeek.THURSDAY ) ) ,
LocalTime.of( hours , minutes ) ,
ZoneId.of( "America/Montreal" )
).toString()
< code>ZonedDateTime类调整日期时间(如果对于该区域中的日期无效)。
现代方法使用java.time类。避免问题中出现的麻烦的旧的遗留日期时间类。
LocalDate
类表示一个只包含日期的值,不包含时间和时区。
时区对于确定日期至关重要。对于任何给定的时刻,日期在全球范围内因地区而异。例如,在巴黎,午夜后几分钟,法国是新的一天,而在蒙特利尔魁北克,这仍然是“昨天”。
以大陆/地区
的格式指定适当的时区名称,例如美国/蒙特利尔
、非洲/卡萨布兰卡
或太平洋/奥克兰
。切勿使用3-4个字母的缩写,例如EST
或IST
,因为它们不是真正的时区,没有标准化,甚至不是唯一的(!)。
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
确定UI小部件表示的DayOfWeek
枚举对象。如果按编号跟踪,则根据ISO 8601标准,周一至周日的分类编号为1-7。
DayOfWeek dow = DayOfWeek.of( 1 ) ; // Monday=1.
使用< code>TemporalAdjuster中的< code > temporal adjuster 来确定下一个星期几。
LocalDate ld = today.with( TemporalAdjusters.next( dow ) ) ;
从您的小时和分钟数中实例化一个< code>LocalTime。
LocalTime lt = LocalTime.of( hours , minutes );
结合以确定时间线中的实际时刻。
ZonedDateTime zdt = ZonedDateTime.of( ld , lt , z ) ;
由于夏令时(DST)等异常情况,您的特定时间可能在该区域的该日期无效。ZonedDateTime
类根据需要进行调整。请务必阅读类文档,以了解其进行调整时的策略。
您可以使用标准ISO 8601格式将该对象序列化为文本,该类对其进行了扩展,将时区名称附加在方括号中。
String output = zdt.toString() ;
通过解析此类字符串来重构对象。
ZonedDateTime zdt = ZonedDateTime.parse( input ) ;
java.time框架内置于Java 8和更高版本中。这些类取代了麻烦的旧式日期-时间类,如< code>java.util.Date、< code>Calendar,
现在处于维护模式的JodaTime项目建议迁移到java。时间课程。
要了解更多信息,请参阅Oracle教程。和搜索堆栈溢出获得许多示例和解释。规格是JSR 310。
java.time课在哪里获取?
问题内容: 我想找到星期一,星期二,星期三等的日期戳。如果这个星期还未到这一天,我希望该日期为本周,否则为下周。谢谢! 问题答案: 看到 通过查看星期数,您可能会发现自己是否已经过了这一天:
我正在尝试为我们的财务部门生成一些代码,他们需要一个字段,该字段将为他们提供一年中的当前一周,但以星期天为基础,这是一周的第一天。例如01-25-16(MM dd yyyy)将是第4周。然而,当我尝试使用和
问题内容: 只要您所在国家/地区的一周中的第一天是星期日,PHP(5.3+)中的DateTime类就可以很好地工作。在荷兰,每周的第一天是星期一,这使得该班级无法用周视图和计算来构建日历。 我似乎找不到关于Stackoverflow或Internet其余部分的答案,如何让DateTime像一周的第一天是星期一那样工作。 我在Stackoverflow上找到了这篇文章,但是它并不能解决您遇到的所有麻
问题内容: 假设我有2011年1月3日,我想在一周的第一天,也就是星期天,那是2011年1月2日,我该怎么做? 原因是我有此查询: 是的,我意识到起源拼写错误,但是在此之前我就在这里,因此由于太多内部应用程序引用了它,因此我无法对其进行更正。 因此,我按周分组,但我希望以此填充我的图表,所以我不能让所有的周初看起来都像不同的日期。我该如何解决? 问题答案: 如果您需要处理从星期一开始的几周,也可以
如何将一周的第一天设置为周一或周六? 我找不到方法或变量来更改它。如下图所示,一周的第一天是星期一。提前谢谢。 链接github DateRangePickerhttps://github.com/savvisingh/DateRangePicker 谢谢你的答案。我终于明白了。您需要初始化区域设置和时区以更改一周的第一天。不是您必须更改的日历。也不需要破坏库代码。
基本上,我正在尝试从一个设定的日期创建一个包含一周所有日期的列表,并将其存储在数组中。但我有点麻烦。 基本上,今天是2016年3月9日,所以在数组中,我想存储: 这是我的代码: 如果有人能帮我就好了