本周的java日历周末
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本周的java日历周末相关的知识,希望对你有一定的参考价值。
Java使用日历我想获得当前周末的日期,任何快速的想法
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
c.getTime(); // => Date of this coming Saturday.
Calendar currDate = Calendar.getInstance();;
currDate.add(Calendar.DAY_OF_YEAR, (Calendar.SATURDAY - currDate.get(Calendar.DAY_OF_WEEK) ));
System.out.println("weekend date is in the " + curreDate.get(Calendar.DAY_OF_MONTH));
试试这个:
String dayNames[]={"lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"};
String nomthNames[]={"janvier","février","mars","avril","mai","juin","juillet","Août","septembre","octobre","novembre","decembre"};
Calendar date = Calendar.getInstance();
String dayName = dayNames[date.get(Calendar.DAY_OF_WEEK)];
String dayMonth = nomthNames[date.get(Calendar.MONTH)];
lblBonjour.setText("<html><b>Bonjour, "+new Functions().getNomPrenom(myID)+"</b><br>"+
"Ajourd'hui "+dayName+" "+date.get(Calendar.DATE)+" "+dayMonth+" "+date.get(Calendar.YEAR)+"<br>"+
"Heure locale: "+date.get(Calendar.HOUR_OF_DAY)+":"+date.get(Calendar.MINUTE) );
乔达时间
new DateTime().withDayOfWeek(DateTimeConstants.SATURDAY)
试试这个。它将给出工作日的开始和结束时间。
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, cal.MONTH);
cal.set(Calendar.WEEK_OF_MONTH, cal.WEEK_OF_MONTH);
int weekStart = cal.getFirstDayOfWeek();
cal.set(Calendar.DAY_OF_WEEK,weekStart);
Date WeekStartDate=cal.getTime();
cal.set(Calendar.DAY_OF_WEEK,weekStart+7);
Date WeekEndDate=cal.getTime(
tl;dr
LocalDate.now( ZoneId.of( "Pacific/Auckland" ) ) // Today, in specific time zone.
.with( TemporalAdjusters.nextOrSame( DayOfWeek.SATURDAY ) ) // Next Saturday, or today if already Saturday.
.plusDays( 1 ) // Sunday
java.time
现代方法使用java.time类来取代麻烦的设计不佳的Date
和Calendar
类。
当前的日期
LocalDate
类表示没有时间且没有时区的仅日期值。
时区对于确定日期至关重要。对于任何给定的时刻,日期在全球范围内因地区而异。例如,在Paris France午夜过后几分钟是新的一天,而在Montréal Québec仍然是“昨天”。
以proper time zone name的格式指定continent/region
,例如America/Montreal
,Africa/Casablanca
或Pacific/Auckland
。切勿使用诸如EST
或IST
之类的3-4字母缩写,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)。
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
搬到下个周末
您可以使用TemporalAdjuster
界面的实现从一个日期调整到另一个日期。 TemporalAdjusters
类中提供了一些方便的实现,例如nextOrSame
。使用DayOfWeek
enum对象指定星期几。请注意,DayOfWeek
是一个实际的对象,而不仅仅是一个数字或字符串,提供type-safety并确保有效值。
LocalDate saturday = today.with( TemporalAdjusters.nextOrSame( DayOfWeek.SATURDAY ) ) ;
LocalDate sunday = saturday.plusDays( 1 ) ;
如果您想要在同一个或上一个周末,请致电previousOrSame
调节器。
About java.time
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,如java.util.Date
,Calendar
和SimpleDateFormat
。
现在在Joda-Time的maintenance mode项目建议迁移到java.time班。
要了解更多信息,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规格是JSR 310。
您可以直接与数据库交换java.time对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*
类。
从哪里获取java.time类?
- Java SE 8,Java SE 9,以及之后 内置。 带有捆绑实现的标准Java API的一部分。 Java 9增加了一些小功能和修复。
- Java SE 6和Java SE 7 大部分java.time功能都在ThreeTen-Backport中反向移植到Java 6和7。
- Android 更高版本的android捆绑java.time类的实现。 对于早期的Android,ThreeTenABP项目采用ThreeTen-Backport(如上所述)。见How to use ThreeTenABP…。
ThreeTen-Extra项目使用其他类扩展了java.time。该项目是未来可能添加到java.time的试验场。你可能会在这里找到一些有用的类,如Interval
,JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)