QDate Class
属性 | 方法 |
---|
注意: 该类提供的所有函数都是可重入的。
公共成员类型
类型 | 名称 |
---|
公共成员函数
类型 | 函数名 |
---|
静态公共成员
类型 | 函数名 |
---|
相关非成员函数
类型 | 函数名 |
---|
详细描述
无论系统的日历和地域设置如何,一个QDate
对象代表特定的一天。它可以告诉您某一天的年、月、日,其对应着格里高利历或者您提供的QCalendar
。
一个QDate
对象一般由显式给定的年月日创建。注意QDate
将1~99的年数保持,不做任何偏移。静态函数currentDate()会创建一个从系统时间读取的QDate
对象。显式的日期设定也可以使用 setDate()。fromString() 函数返回一个由日期字符串和日期格式确定的日期。
year()、month()、day() 函数可以访问年月日。另外,还有 dayOfWeek()、dayOfYear() 返回一周或一年中的天数。文字形式的信息可以通过 toString()获得。天数和月数可以由 QLocale 类映射成文字。
QDate 提供比较两个对象的全套操作,小于意味着日期靠前。
您可以通过 addDays() 给日期增减几天,同样的还有 addMonths()、addYears() 增减几个月、几年。daysTo() 函数返回两个日期相距的天数。
daysInMonth() 和 daysInYear() 函数返回一个月、一年里有几天。isLeapYear() 用于判断闰年。
特别注意
- 年数没有0 第0年的日期是非法的。公元后是正年份,公元前是负年份。
QDate(1, 1, 1)
的前一天是QDate(-1, 12, 31)
。 - 合法的日期范围 日期内部存储为儒略日天号,使用连续的整数记录天数,公元前4714年11月24日是格里高利历第0天(儒略历的公元前4713年1月1日)。除了可以准确有效地表示绝对日期,此类也可以用来做不同日历系统的转换。儒略历天数可以通过 QDate::toJulianDay() 和 QDate::fromJulianDay()读写。 由于技术原因,储存的儒略历天号在 -784350574879~784354017364 之间,大概是公元前2亿年到公元后2亿年之间。
另请参阅:QTime、QDateTime、QCalendar、QDateTime::YearRange、QDateEdit、QDateTimeEdit 和 QCalendarWidget。
成员类型文档
enum QDate::MonthNameType
此枚举描述字符串中月份名称的表示类型
常量 | 数值 | 描述 |
---|
此枚举在Qt 4.5中引入或修改。
成员函数文档
QString QDate::toString(QStringView format) const
QString QDate::toString(QStringView format, QCalendar cal) const
QString QDate::toString(const QString &format) const
QString QDate::toString(const QString &format, QCalendar cal) const
返回字符串形式的日期。 参数format控制输出的格式。如果传入参数cal, 它决定了使用的日历系统,默认是格里高利历。
日期格式的表示如下:
占位符 | 输出格式 |
---|
单引号包裹的内容将会一字不差地放进输出到字符串中(不带外面的单引号),尽管包含上述格式占位符。连续两个单引号('')会被转义成一个单引号输出。所有其他字符不会被转义,将原封不动输出。
没有分隔符的多个占位符(例如 "ddMM")受支持,但要慎用。因为结果的可读性不好,容易引发歧义(例如难以区分“dM”的输出"212"是清2.12还是21,2)
假设今天是1969年7月20日,下面是一些格式字符串的例子
格式 | 结果 |
---|
如果日期非法,会返回空字符串。
注意: 如果需要本地化的日期表达, 请使用 QLocale::system().toString(),因为 QDate 将在 Qt 6 使用英文表达(C语言风格)。
另请参阅:fromString()、QDateTime::toString()、QTime::toString() 和 QLo