- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
首先,让我向您介绍一下整个过程。
我想自定义我制作的周历。它工作正常,但问题是当我在三星 SM-T531 和 Moto G 中运行相同的代码时,它会在前一周返回给我。
让我用代码来解释。
public WeekCalendar(Context context) {
this.mContext = context;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.setFirstDayOfWeek(Calendar.MONDAY);
Log.e(TAG, "Formatted Current Date Before - " + format.format(calendar.getTime()));
Log.e(TAG, "Current Date Before - " + calendar.getTime());
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Log.e(TAG, "Formatted Current Date After - " + format.format(calendar.getTime()));
Log.e(TAG, "Current Date After - " + calendar.getTime());
String[] days = new String[7];
for (int i = 0; i < 7; i++) {
days[i] = format.format(calendar.getTime());
calendar.add(Calendar.DAY_OF_MONTH, 1);
Log.e(TAG, "List days " + "" + days[i]);
}
weekDataModel.setDays(days);
weekDataModel.setCurruntdate(Utility.getCurrentDate());
}
这段代码的输出
Formatted Current Date Before - 2018-04-20
Current Date Before - Fri Apr 20 15:25:58 GMT+05:30 2018
Formatted Current Date After - 2018-04-09
Current Date After - Mon Apr 09 15:25:58 GMT+05:30 2018
List days 2018-04-09
List days 2018-04-10
List days 2018-04-11
List days 2018-04-12
List days 2018-04-13
List days 2018-04-14
List days 2018-04-15
当前日期是 calendar.getTime() 中的 20-4-2018,它是正确的,但在添加以下行后当前日期已更改,我不明白为什么会这样。
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
您可以在日期之前和之后看到我的输出。
最佳答案
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-21
2018-04-16
如果不是亚洲/科伦坡,请填写您想要的时区。
我假设您真的想遍历当前一周的几天,所以上面的代码 fragment 将日期设置为一周的第一天。我指定了 ISO 周,即从星期一开始的周,因此您将拥有同一周的星期一。如果您真的只想要最近的星期一,使用 date = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); 会更正确。
。
定义一周的关键是WeekFields
对象。假设你想要从星期日开始的美国周:
WeekFields wf = WeekFields.SUNDAY_START;
通过此更改,您将获得星期日:
2018-04-21
2018-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-16
List days 2018-04-16
List days 2018-04-17
List days 2018-04-18
List days 2018-04-19
List days 2018-04-20
List days 2018-04-21
List days 2018-04-22
我正在使用并推荐 java.time
,现代 Java 日期和时间 API。 Calendar
类早就过时了,而 java.time
更易于使用。一个额外的好处是 LocalDate.toString()
为您提供您使用的日期格式,因此您不再需要显式格式化程序(它是 ISO 8601 格式)。如果某些设备上的 Calendar
实现存在错误或类似错误,您显然不会遇到这种情况。
是的,java.time
在新旧 Android 设备上都能很好地工作。它只需要至少 Java 6。
org.threeten.bp
导入日期和时间类。java.time
。java.time
。java.time
到 Java 6 和 7(JSR-310 的 ThreeTen)的反向移植。关于java - 在某些设备上获取当前工作日的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939067/
我试图通过这段代码读取未知数量的整数: while (1) { int c = getchar (); if (c == EOF) break;
我正试图找到一个类似于谷歌分析日期选择器的日期选择器: 知道 jQuery 是否提供了类似的东西吗? 最佳答案 这个 Twitter Bootstrap 风格的日期范围选择器非常接近。 https:/
我正在使用 javascript。如何获取当前 URL 的路径并将其分配给我的代码?这是我的代码: $(document).ready(function() { $(".share").hides
如何获得今天的Julian day number (JDN)相等的?或任何日期? 我看了又看,但只发现了一些产生“year-dayOfYear”的函数,而不是:2457854。 最佳答案 在 bash
我有相当简单的 UDP 服务器写在 c 上。 有时我需要知道在套接字中排队的所有 udp 数据包(字节)的当前长度。 据我了解,getsockopt 没有得到这样的信息。 欢迎使用 Linux 和 F
我一直在寻找几个小时来找到一个可以在图像中添加诸如“填充:5px”之类的东西的插件。每个人都通过纯 html 做到这一点吗?我们的客户需要一种方法来简单地使用按钮或右键单击上下文菜单来添加它。有什么建
是否有可能获得当前正在执行的 TCL 脚本的完整路径? 在 PHP 中,它将是:__FILE__ 最佳答案 根据“当前正在执行的 TCL 脚本”的含义,您实际上可能会寻找 info script ,甚
我最近从直接使用 ISession 转向了包装的 ISession,即工作单元类型模式。 我曾经使用 SQL Lite(内存中)对此进行测试。我有一个简单的帮助器类,它配置我的 SessionFact
我按照步骤操作 here在 WebStorm 中配置代码完成和其他内容,但我仍然收到以下语法错误。 我该如何解决这个问题? 最佳答案 通过相应地将“JavaScript 语言版本”(Settings/
我可以为我团队的 TFS 当前 Sprint 任务板添加书签吗?我们有两周的冲刺,因此 URL 每两周更改一次。 默认 URL 的形式为: http://[Server]/tfs/[Project]/
是否有 Subversion 命令可以显示当前版本号? 在svn checkout之后,我想启动一个脚本并需要变量中的修订号。如果有像 svn info get_revision_number 这样的
我正在编写表单的一个组件 首次安装组件时,sources={{}} ,一本空字典。由于该组件包装了现有的 Javascript 库,因此我正在实现一个自定义比较函数。为了让这个 diffing 函数
无论系统时间设置为多少以及机器所在的时区,我都需要正确的 UTC 时间。 (即使我必须打电话到互联网才能同步......) 是否有一些库或其他方法可以优雅地做到这一点? 最佳答案 如果您想获得准确可靠
我一边编码,一边拿出一些我和 friend 建立的旧网站来重新开始工作。我已经有一段时间没有做过任何 AJAX 了,当我试图找出我的代码失败的地方时,我发现没有显示很多资源。我猜这是因为我使用的是旧方
由于对性能的巨大影响,我从不怀疑我现在的桌面CPU是否有分支预测。当然可以。但各种 ARM 产品又如何呢? iPhone或Android手机有分支预测吗?较旧的任天堂 DS?基于 PowerPC 的
我有一个具有以下有效负载的 JWT: { "id": "394a71988caa6cc30601e43f5b6569d52cd7f6df", "jti": "394a71988caa6cc30
从其他一些帖子中,我能够通过以下方式获取当前 URI: 但是以下方法不起作用: 我很好奇为什么上面的方法不起作用,以及如何将当前 URI 分配给字符串。 最佳答案 每the javadocs ,g
我在表格 View 中有几个单元格。现在在任何给定的时间点,我想计算 View 中单元格的当前高度,即如果它是 View 的 3/4,它应该返回 (cellheight)*3/4 高度。 我通过以下方
这是网站的身份验证脚本。这安全吗?是最近的节目吗?它已经过时了吗?是否有“更好更安全的方法”我很新,但我没有看到太多地方使用 header 授权。 如有任何帮助,我们将不胜感激!这是我制作的第一个登录
我已经在其他 stackoverflow 线程上检查过这个错误,但在我的代码中没有发现任何错误。也许我累了,但我觉得还好。 网站.urls.py: from django.conf.urls impo
我是一名优秀的程序员,十分优秀!