栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在某些设备上获取当前工作日的相关信息

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在某些设备上获取当前工作日的相关信息

    LocalDate date = LocalDate.now(ZoneId.of("Asia/Colombo"));    System.out.println(date);    WeekFields wf = WeekFields.ISO;    // set to first day of week (Monday for ISO, Sunday for USA)    date = date.with(wf.dayOfWeek(), 1);    System.out.println(date);

今天的输出:

2018-04-212018-04-16

如果不是亚洲/科伦坡,请填写所需的时区。

我以为您真的想在当前一周的几天内进行迭代,因此上面的代码段将日期设置为一周的第一天。我指定了ISO周,即从星期一开始的周,因此您将拥有同一周的星期一。如果您真的只是想要最近的星期一,那么使用会更正确

date= date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));

定义一周的关键是

WeekFields
对象。假设您想要从周日开始的美国周:

    WeekFields wf = WeekFields.SUNDAY_START;

进行此更改后,您将获得星期日:

2018-04-212018-04-15

或根据设备的区域设置使用几周:

    WeekFields wf = WeekFields.of(Locale.getDefault(Locale.Category.DISPLAY));

对于迭代使用

LocalDate.plusDays()

    WeekFields wf = WeekFields.ISO;    date = date.with(wf.dayOfWeek(), 1);    System.out.println(date);    LocalDate[] days = new LocalDate[7];    for (int i = 0; i < 7; i++) {        days[i] = date;        date = date.plusDays(1);        System.out.println("List days " + "" + days[i]);    }

输出:

2018-04-16List days 2018-04-16List days 2018-04-17List days 2018-04-18List days 2018-04-19List days 2018-04-20List days 2018-04-21List days 2018-04-22

我正在使用并推荐

java.time
现代Java日期和时间API。该
Calendar
班是早已过时的,并且
java.time
是与工作,以便更好。另一个优点是,
LocalDate.toString()
它可以为您提供使用的日期格式,因此您不再需要显式的格式化程序(它是ISO
8601格式)。而且,如果
Calendar
某些设备上的实现存在错误或类似问题,那么您显然可以摆脱这些麻烦。

问题:我可以在Android上使用java.time吗?

是的,

java.time
在较新和较旧的Android设备上均可正常运行。它至少需要Java 6

  • 在Java 8和更高版本以及更新的Android设备中(有人告诉我,从API级别26开始),内置了现代API。
  • 在Java 6和7中,获取ThreeTen反向端口,即新类的反向端口(JSR 310的ThreeTen;请参见底部的链接)。
  • 在旧版Android上,请使用Android版本的ThreeTen Backport。它称为ThreeTenABP。并确保您导入
    org.threeten.bp
    带有子包的日期和时间类。

链接

  • Oracle教程:Date Time解释如何使用
    java.time
  • Java规范请求(JSR)310,其中,
    java.time
    第一被描述。
  • ThreeTen Backport项目,是
    java.time
    Java 6和7的反向移植(JSR-310的ThreeTen)。
  • ThreeTenABP,Android版本的ThreeTen Backport
  • 问题:如何在Android Project中使用ThreeTenABP,并有非常详尽的解释。
  • 维基百科文章:ISO 8601


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号