我需要从周一开始我的日历。根据今天的日期(2012年8月7日),第一天是周一,一周中的最短天数是1天,java为我提供了一年中的第33周,而android为32,为什么?
因此,我需要具有以下功能的日历替代方案。我正在使用的代码:
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setMinimalDaysInFirstWeek(1);
out("For date : "+df.format(cal.getTime())+" Week = "+cal.get(Calendar.WEEK_OF_YEAR));
有什么帮助吗?
LocalDate.of( 2012 , Month.AUGUST , 7 )
.get( IsoFields.WEEK_OF_WEEK_BASED_YEAR )
32
不确定你的问题的直接答案,但可能是不同的Locale
值在起作用。在日历中
一周的定义因地区而异。
但这是毫无意义的。你应该使用java。取代日历
类的时间类。
Calendar
是旧日期时间类的一部分,这些类现在是遗留的,被java取代。时间课。对于早期的Android,请参见下面的最后几点。
你必须定义你所说的周数。定义周数和周数有不同的方法。
默认情况下,java。时间类使用标准ISO 8601定义:周#1为日历年的第一个星期四,从周一开始(如您所要求)。所以一年有52或53周。日历年的前几天和最后几天可能会在前一周/后一周到达。
LocalDate
类表示一个只包含日期的值,不包含一天中的时间和时区。
LocalDate ld = LocalDate.of( 2012 , Month.AUGUST , 7 ) ;
询问标准周数。您可以请求以下任一TemporalField
对象:isofield。以周为基础的年
int weekOfWeekBasedYear = ld.get( IsoFields.WEEK_OF_WEEK_BASED_YEAR ) ;
int yearOfWeekBasedYear = ld.get( IsoFields.WEEK_BASED_YEAR ) ;
使用标准ISO 8601格式的YYYY-Www-D
转储到控制台。
String isoOutput = yearOfWeekBasedYear + "-W" + String.format("%02d", weekOfWeekBasedYear) + "-" + dayOfWeekNumber ;
System.out.println( ld + " is ISO 8601 week: " + isoOutput ) ;
查看此代码在IdeOne上的实时运行。通用域名格式。
2012-08-07是ISO 8601周:2012-W32-2
顺便说一句,如果Android能够运行Three10-Extra库,您会发现它的YearWeek
类很有用。
java.time框架内置在Java8及更高版本中。这些类取代了麻烦的旧的遗留日期-时间类,例如java.util.Date
,Calendar
,
现在处于维护模式的Joda-Time项目建议迁移到java.time类。
要了解更多信息,请参阅Oracle教程。并在Stack Overflow中搜索许多示例和解释。规范是JSR 310。
从哪里获得java.time课程?
问题内容: 以前,我总是以为Vector在长度未知的情况下可以很好地用于非描述对象。据我所知,我也认为它也是线程安全的 有什么改变不应该再使用了,替代方案是什么? 问题答案: 您应该使用而不是。虽然使用了内部同步,但是对于实际的一致性而言,这很少够用,只会在真正不需要时降低执行速度。 另请参阅此stackoverflow问题。
需求是再页面内打开一个弹窗然后显示外部页面。 但是外部页面都是http 无法使用
问题内容: 使用hibernate实现联合查询,我必须采取什么替代方法?我知道hibernate状态目前不支持联合查询,现在我看到的建立联合的唯一方法是使用视图表。 另一个选择是使用普通的jdbc,但是这样一来,我将失去所有示例/条件查询功能,以及hibernate对表/列执行的hibernate映射验证。 问题答案: 使用hibernate实现联合查询,我必须采取什么替代方法?我知道hibern
目前,Android的EditText在处理大量文本行(10000行)时速度非常慢。这种放缓似乎部分是由于EditText支持跨度,主要是由于EditText正在计算每行的宽度,这非常昂贵。EditText有什么更快的替代品,或者优化它以使其可用的方法吗? 编辑:方法跟踪如下:
这可能是一个真正的新手问题,但我正在编写一个Android应用程序,它需要使用一个用C编写的.so库。该.so由几个类组成,是通用C语言,而不是JNI语言。 除了JNI之外,有没有办法从AndroidJava应用程序调用C函数?我所看到的关于JNI的一切都表明,您必须重写本机代码以特定于JNI,如果只给您一个. so,那真是太不方便了。 在Android 4.0.3中,从java应用程序调用本机函
问题内容: 出于各种原因,在编写 Java应用程序时 ,调用会被皱眉,所以如何通知调用过程并非一切都按计划进行? 编辑: 1是任何非零退出代码的。 问题答案: 当“应用程序”实际上是较大的Java应用程序(服务器)的子应用程序(例如servlet,applet)时,对的使用会被拒绝:在这种情况下,它可能会停止JVM并因此停止所有其他子应用程序。在这种情况下,抛出适当的异常(最好由应用程序框架/服务