回答
看看GregorianCalendar
,有事的一天如:
final Calendar now = GregorianCalendar.getInstance()
final int dayNumber = now.get(Calendar.DAY_OF_MONTH);
下面的方法会帮助你找到任何指定日期的当天:
public static int getDayOfMonth(Date aDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(aDate);
return cal.get(Calendar.DAY_OF_MONTH);
}
TL;博士
LocalDate.now().getDayOfMonth() // Better to pass a `ZoneId` optional argument to `now` as shown below than rely implicitly on the JVM’s current default time zone.
java.time
现代化的方法是LocalDate
类来表示仅限日期的值。
时区对确定当前日期至关重要。对于任何特定的时刻,日期因地区而异。
ZoneId z = ZoneId.of("America/Montreal");
LocalDate ld = LocalDate.now(z) ;
int dayOfMonth = ld.getDayOfMonth();
您还可以获得星期几。
DayOfWeek dow = ld.getDayOfWeek();
关于java.time
的java.time框架是建立在Java 8和更高版本。这些类代替了日期时间类legacy,如java.util.Date
,Calendar
,& SimpleDateFormat
。
Joda-Time项目,现在在maintenance mode,建议迁移到java.time类。请参阅Oracle Tutorial。并搜索堆栈溢出了很多例子和解释。规格是JSR 310。
使用JDBC driver与JDBC 4.2或更高版本兼容的,你可以交换java.time直接对象与数据库。不需要字符串和java.sql。*类。
从何处获取java.time类?
- Java SE 8,Java SE 9,后来
- 内置。
- 带捆绑实现的标准Java API的一部分。
- Java 9增加了一些次要功能和修复。在ThreeTen-Backport
- Java SE 6和Java SE 7
- 大部分的java.time功能后移植到Java 6 & 7。
- Android
- 更高版本java.time类的Android束实现的。
- 对于较早的Android,ThreeTenABP项目改编为三天返回端口(如上所述)。见How to use ThreeTenABP…。
的ThreeTen-Extra项目与其他类扩展java.time。这个项目是未来可能增加java.time的一个试验场。您可以在这里找到一些有用的类,如Interval
,YearWeek
,YearQuarter
和more。
乔达时间
UPDATE:的乔达时间项目现在处于维护模式,并建议迁移到java.time类。本节保留完整的历史记录。
使用Joda-Time 2.5库而非众所周知的烦人的java.util.Date和.Calendar类。
时区对确定日期至关重要。最好指定区域,而不是隐式地依赖JVM当前分配的默认时区。
DateTimeZone zone = DateTimeZone.forID("America/Montreal");
DateTime now = DateTime.now(zone).withTimeAtStartOfDay();
int dayOfMonth = now.getDayOfMonth();
或者使用类似的代码与具有时间的天没有部分LocalDate
类。
的Java 8更新
的Java 8引入了时间和日期操作以下软件包。
java.time.*;
java.time.format.*;
java.time.chono.*;
java.time.temporal.*;
java.time.zone.*;
这些更有组织和直观。
我们只需讨论最多两个包。
有3个顶级类别 - LocalDate
,LocalTime
,LocalDateTime
分别用于描述日期,时间和日期时间。虽然它们在toString()
中格式正确,但每个类都有格式化方法,它接受DateTimeFormatter
以自定义的方式进行格式化。
DateTimeFormatter
也可以用来显示每天给定的日期。它有几个
import java.time.*;
import java.time.format.*;
class DateTimeDemo{
public static void main(String...args){
LocalDateTime x = LocalDateTime.now();
System.out.println(x.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)));//Shows Day and Date.
System.out.println(x.format(DateTimeFormatter.ofPattern("EE")));//Short Form
System.out.println(x.format(DateTimeFormatter.ofPattern("EEEE")));//Long Form
}
}
ofLocalizedTime
接受FormatStyle
这在java.time.format
ofPattern
枚举接受String
受限长度的限制模式字符。以下是可以传入toPattern
方法的字符。
你可以尝试不同数量的模式来查看输出将会如何。
签出更多关于Java 8日期时间API here
- 1. Lubridate获取某月某天的日期
- 2. 如何获得当月的第一天?
- 3. 如何获取特定年份某月的某一天的日期?
- 4. 如何获取当前月份的天数?在PHP
- 5. 如何使用javascript获取当月的最后一天?
- 6. 获取当月
- 7. 如何获取使用datediff的月份第一天的天数
- 8. 获取当前月份和当前年份的天数
- 9. 如何从本月的第一天到昨天获取数据
- 10. 如何在date_select中获取某个特定月份的总天数4.1
- 11. 获取AppleScript中的月份的最后一天以及当月的假期
- 12. 如何获得当月的最后一天?
- 13. 获取的天数在当月在Java中
- 14. Oracle - 获取当月的前3天记录
- 15. 当天+ N天下个月或上个月的一天
- 16. 如何从Windows cmd.exe脚本获取当天的月份和年份?
- 17. 如何找到天数在当月
- 18. 从NSCalendar获取第一天的月份
- 19. Oracle SQL获取月的第一天
- 20. 获取特定月份的天数
- 21. Qdate,获取月的第一天
- 22. 获取该月的第一天
- 23. 如何使用一周中的某一天和一个月中的哪一天在python中获取年份?
- 24. 如何累计超过当月的天数的天数?
- 25. 如何在ruby中获取上个月的今天的日子?
- 26. 获取当天的名字
- 27. 如何在YearMonth对象中获取月份的最后一天?
- 28. 如何在Impala中获取前一个月的最后一天?
- 29. Flex:如何获取Flex中特定月份的天数?
- 30. 如何从YearMonth日期获取月份的最后一天?
快速搜索想出了这个.. http://www.roseindia.net/java/beginners/DayYearToDayMonth.shtml –