faker.providers.date_time

class faker.providers.date_time.Provider(generator: Any)

基类: BaseProvider

此提供程序的大多数方法都接受“start_datetime”和/或“end_datetime”参数。

这些参数接受各种类型,并用于定义随机日期/时间范围。

我们将此类型称为 DateParseType

一个 DateParseType 可以是

  • 一个 datetime 或 date 对象

  • 一个整数或浮点数,表示 UNIX 时间戳

  • 特殊字符串 'now'

  • 特殊字符串 'today'

  • 一个 timedelta 对象,表示与现在的时差

  • 一个“timedelta 字符串”,例如“+2d”、“-3w”、“+4y”等。表示与现在的时差。

am_pm() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.am_pm()
...
'AM'
'AM'
'PM'
'PM'
'AM'
century() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.century()
...
'XIII'
'XIV'
'II'
'IX'
'XVII'
date(pattern: str = '%Y-%m-%d', end_datetime: date | datetime | timedelta | str | int | None = None) str

获取一个介于 1970 年 1 月 1 日和现在之间的日期字符串。

参数:
  • pattern – 日期格式(默认为年-月-日)

  • end_datetime – 一个 DateParseType。默认为当前日期和时间

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date()
...
'2017-04-02'
'2012-05-31'
'1993-07-14'
'1984-06-27'
'1998-08-11'
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date(pattern='%m/%d/%Y')
...
'04/02/2017'
'05/31/2012'
'07/14/1993'
'06/27/1984'
'08/11/1998'
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date(end_datetime='+1w')
...
'2017-04-08'
'2012-06-05'
'1993-07-17'
'1984-06-29'
'1998-08-15'
date_between(start_date: date | datetime | timedelta | str | int = '-30y', end_date: date | datetime | timedelta | str | int = 'today') date

获取一个基于两个给定日期之间随机日期的 Date 对象。接受可被 strtotime() 识别的日期字符串。

参数:
  • start_date – 一个 DateParseType。默认为 30 年前

  • end_date – 一个 DateParseType。默认为 "today"

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_between()
...
datetime.date(2021, 4, 16)
datetime.date(2018, 9, 11)
datetime.date(2008, 7, 28)
datetime.date(2003, 9, 22)
datetime.date(2011, 4, 18)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_between(start_date='-1w')
...
datetime.date(2025, 12, 14)
datetime.date(2025, 12, 14)
datetime.date(2025, 12, 11)
datetime.date(2025, 12, 10)
datetime.date(2025, 12, 12)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_between(start_date="-1y", end_date="+1w")
...
datetime.date(2025, 10, 25)
datetime.date(2025, 9, 23)
datetime.date(2025, 5, 20)
datetime.date(2025, 3, 21)
datetime.date(2025, 6, 23)
date_between_dates(date_start: date | datetime | timedelta | str | int | None = None, date_end: date | datetime | timedelta | str | int | None = None) date

获取两个给定日期之间的随机日期。

参数:
  • date_start – 一个 DateParseType。默认为 UNIX 纪元时间

  • date_end – 一个 DateParseType。默认为当前日期和时间

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_between_dates()
...
datetime.date(2025, 12, 16)
datetime.date(2025, 12, 16)
datetime.date(2025, 12, 16)
datetime.date(2025, 12, 16)
datetime.date(2025, 12, 16)
date_object(end_datetime: datetime | None = None) date

获取一个介于 1970 年 1 月 1 日和现在之间的 date 对象

参数:

end_datetime – 一个 DateParseType。默认为当前日期和时间

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_object()
...
datetime.date(2017, 4, 2)
datetime.date(2012, 5, 31)
datetime.date(1993, 7, 14)
datetime.date(1984, 6, 27)
datetime.date(1998, 8, 11)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_object(end_datetime='+1w')
...
datetime.date(2017, 4, 8)
datetime.date(2012, 6, 5)
datetime.date(1993, 7, 17)
datetime.date(1984, 6, 29)
datetime.date(1998, 8, 15)
date_of_birth(tzinfo: tzinfo | None = None, minimum_age: int = 0, maximum_age: int = 115) date

生成一个随机的出生日期,表示为一个 Date 对象,受可选的 minimum_age 和 maximum_age 参数限制。

参数:
  • tzinfo – 默认为 None。

  • minimum_age – 默认为 0

  • maximum_age – 默认为 115

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_of_birth()
...
datetime.date(2007, 11, 29)
datetime.date(1997, 11, 17)
datetime.date(1958, 9, 29)
datetime.date(1939, 12, 29)
datetime.date(1969, 4, 7)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_of_birth(minimum_age=30, maximum_age=50)
...
datetime.date(1992, 9, 8)
datetime.date(1990, 11, 15)
datetime.date(1983, 10, 15)
datetime.date(1980, 5, 23)
datetime.date(1985, 9, 10)
date_this_century(before_today: bool = True, after_today: bool = False) date

获取当前世纪的 Date 对象。

参数:
  • before_today – 包括今天之前的当前世纪日期。默认为 True

  • after_today – 包括今天之后的当前世纪日期。默认为 False

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_century()
...
datetime.date(2021, 12, 1)
datetime.date(2019, 9, 4)
datetime.date(2010, 12, 1)
datetime.date(2006, 9, 20)
datetime.date(2013, 4, 9)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_century(before_today=False, after_today=True)
...
datetime.date(2088, 6, 24)
datetime.date(2082, 1, 29)
datetime.date(2057, 2, 4)
datetime.date(2045, 2, 16)
datetime.date(2063, 10, 24)
date_this_decade(before_today: bool = True, after_today: bool = False) date

获取当前十年的 Date 对象。

参数:
  • before_today – 包括今天之前的当前十年日期。默认为 True

  • after_today – 包括今天之后的当前十年日期。默认为 False

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_decade()
...
datetime.date(2025, 1, 11)
datetime.date(2024, 7, 7)
datetime.date(2022, 7, 4)
datetime.date(2021, 7, 17)
datetime.date(2023, 1, 17)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_decade(before_today=False, after_today=True)
...
datetime.date(2029, 5, 16)
datetime.date(2029, 1, 8)
datetime.date(2027, 8, 29)
datetime.date(2027, 1, 2)
datetime.date(2028, 1, 10)
date_this_month(before_today: bool = True, after_today: bool = False) date

获取当前月份的 Date 对象。

参数:
  • before_today – 包括今天之前的当前月份日期。默认为 True

  • after_today – 包括今天之后的当前月份日期。默认为 False

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_month()
...
datetime.date(2025, 12, 13)
datetime.date(2025, 12, 12)
datetime.date(2025, 12, 7)
datetime.date(2025, 12, 4)
datetime.date(2025, 12, 8)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_month(before_today=False, after_today=True)
...
datetime.date(2025, 12, 29)
datetime.date(2025, 12, 28)
datetime.date(2025, 12, 22)
datetime.date(2025, 12, 20)
datetime.date(2025, 12, 24)
date_this_year(before_today: bool = True, after_today: bool = False) date

获取当前年份的 Date 对象。

参数:
  • before_today – 包括今天之前的当前年份日期。默认为 True

  • after_today – 包括今天之后的当前年份日期。默认为 False

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_year()
...
datetime.date(2025, 10, 22)
datetime.date(2025, 9, 22)
datetime.date(2025, 5, 27)
datetime.date(2025, 4, 1)
datetime.date(2025, 6, 28)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_this_year(before_today=False, after_today=True)
...
datetime.date(2025, 12, 29)
datetime.date(2025, 12, 28)
datetime.date(2025, 12, 22)
datetime.date(2025, 12, 20)
datetime.date(2025, 12, 24)
date_time(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None) datetime

获取一个介于 1970 年 1 月 1 日和指定 end_datetime 之间的 datetime 对象

参数:
  • tzinfo – 时区,datetime.tzinfo 子类的实例

  • end_datetime – 一个 DateParseType。默认为当前日期和时间

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time()
...
datetime.datetime(2017, 4, 2, 7, 10, 7, 502264)
datetime.datetime(2012, 5, 31, 1, 50, 8, 77349)
datetime.datetime(1993, 7, 14, 15, 27, 56, 829760)
datetime.datetime(1984, 6, 27, 17, 48, 32, 588219)
datetime.datetime(1998, 8, 11, 10, 27, 26, 209287)
date_time_ad(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None, start_datetime: date | datetime | timedelta | str | int | None = None) datetime

获取一个介于公元 0001 年 1 月 1 日和现在之间的 datetime 对象

参数:
  • tzinfo – 时区,datetime.tzinfo 子类的实例

  • end_datetime – 一个 DateParseType。默认为当前日期和时间

  • start_datetime – 一个 DateParseType。默认为 UNIX 时间戳 -62135596800

相当于 0001-01-01 00:00:00 UTC

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_ad()
...
datetime.datetime(1710, 12, 2, 9, 45, 2, 972115)
datetime.datetime(1535, 10, 30, 1, 56, 21, 960716)
datetime.datetime(852, 8, 21, 17, 50, 48, 873749)
datetime.datetime(525, 4, 18, 19, 55, 13, 558075)
datetime.datetime(1036, 4, 23, 18, 53, 7, 201492)
date_time_between(start_date: date | datetime | timedelta | str | int = '-30y', end_date: date | datetime | timedelta | str | int = 'now', tzinfo: tzinfo | None = None) datetime

获取一个基于两个给定日期之间随机日期的 datetime 对象。接受可被 strtotime() 识别的日期字符串。

参数:
  • start_date – 一个 DateParseType。默认为 30 年前

  • end_date – 一个 DateParseType。默认为 "now"

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_between()
...
datetime.datetime(2021, 4, 16, 7, 19, 4, 236214)
datetime.datetime(2018, 9, 11, 20, 43, 50, 808743)
datetime.datetime(2008, 7, 29, 2, 13, 31, 361449)
datetime.datetime(2003, 9, 22, 19, 24, 7, 49189)
datetime.datetime(2011, 4, 18, 22, 41, 3, 171082)
date_time_between_dates(datetime_start: date | datetime | timedelta | str | int | None = None, datetime_end: date | datetime | timedelta | str | int | None = None, tzinfo: tzinfo | None = None) datetime

获取两个给定 datetime 之间的随机 datetime。

参数:
  • datetime_start – 一个 DateParseType。默认为 UNIX 纪元时间

  • datetime_end – 一个 DateParseType。默认为当前日期和时间

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_between_dates()
...
datetime.datetime(2025, 12, 16, 0, 8, 21)
datetime.datetime(2025, 12, 16, 0, 8, 21)
datetime.datetime(2025, 12, 16, 0, 8, 21)
datetime.datetime(2025, 12, 16, 0, 8, 21)
datetime.datetime(2025, 12, 16, 0, 8, 21)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_between_dates(datetime_start='-30y', datetime_end='now')
...
datetime.datetime(2021, 4, 16, 7, 19, 4, 236214)
datetime.datetime(2018, 9, 11, 20, 43, 50, 808743)
datetime.datetime(2008, 7, 29, 2, 13, 31, 361449)
datetime.datetime(2003, 9, 22, 19, 24, 7, 49189)
datetime.datetime(2011, 4, 18, 22, 41, 3, 171082)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_between_dates(datetime_start='now', datetime_end='+1y')
...
datetime.datetime(2026, 10, 20, 10, 8, 18, 441207)
datetime.datetime(2026, 9, 18, 20, 11, 7, 993625)
datetime.datetime(2026, 5, 18, 14, 46, 7, 345382)
datetime.datetime(2026, 3, 20, 13, 44, 28, 534973)
datetime.datetime(2026, 6, 20, 17, 51, 2, 405703)
date_time_this_century(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime

获取当前世纪的 datetime 对象。

参数:
  • before_now – 包括今天之前的当前世纪日期。默认为 True

  • after_now – 包括今天之后的当前世纪日期。默认为 False

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_century()
...
datetime.datetime(2021, 12, 1, 23, 14, 35, 875644)
datetime.datetime(2019, 9, 4, 4, 4, 55, 720689)
datetime.datetime(2010, 12, 1, 10, 35, 53, 945228)
datetime.datetime(2006, 9, 20, 18, 59, 20, 620475)
datetime.datetime(2013, 4, 9, 9, 33, 58, 865391)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_century(before_now=False, after_now=True)
...
datetime.datetime(2088, 6, 24, 13, 5, 27, 293042)
datetime.datetime(2082, 1, 29, 2, 53, 11, 902200)
datetime.datetime(2057, 2, 4, 22, 35, 18, 977520)
datetime.datetime(2045, 2, 16, 3, 34, 24, 284047)
datetime.datetime(2063, 10, 24, 21, 59, 36, 840809)
date_time_this_decade(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime

获取当前十年的 datetime 对象。

参数:
  • before_now – 包括今天之前的当前十年日期。默认为 True

  • after_now – 包括今天之后的当前十年日期。默认为 False

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_decade()
...
datetime.datetime(2025, 1, 11, 11, 12, 15, 441906)
datetime.datetime(2024, 7, 7, 7, 30, 58, 396111)
datetime.datetime(2022, 7, 4, 3, 59, 19, 560678)
datetime.datetime(2021, 7, 17, 9, 42, 15, 839571)
datetime.datetime(2023, 1, 17, 12, 52, 55, 924150)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_decade(before_now=False, after_now=True)
...
datetime.datetime(2029, 5, 16, 5, 5, 14, 798948)
datetime.datetime(2029, 1, 8, 12, 0, 4, 896384)
datetime.datetime(2027, 8, 29, 4, 30, 7, 323889)
datetime.datetime(2027, 1, 2, 10, 11, 2, 754494)
datetime.datetime(2028, 1, 10, 3, 44, 3, 614433)
date_time_this_month(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime

获取当前月份的 datetime 对象。

参数:
  • before_now – 包括今天之前的当前月份日期。默认为 True

  • after_now – 包括今天之后的当前月份日期。默认为 False

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_month()
...
datetime.datetime(2025, 12, 13, 16, 6, 33, 774924)
datetime.datetime(2025, 12, 12, 8, 58, 8, 641366)
datetime.datetime(2025, 12, 7, 7, 27, 51, 475119)
datetime.datetime(2025, 12, 4, 21, 14, 45, 825672)
datetime.datetime(2025, 12, 8, 16, 7, 48, 187529)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_month(before_now=False, after_now=True)
...
datetime.datetime(2025, 12, 29, 12, 16, 46, 712201)
datetime.datetime(2025, 12, 28, 3, 5, 17, 431469)
datetime.datetime(2025, 12, 22, 17, 34, 48, 446979)
datetime.datetime(2025, 12, 20, 3, 31, 37, 798313)
datetime.datetime(2025, 12, 24, 4, 23, 51, 26185)
date_time_this_year(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime

获取当前年份的 datetime 对象。

参数:
  • before_now – 包括今天之前的当前年份日期。默认为 True

  • after_now – 包括今天之后的当前年份日期。默认为 False

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_year()
...
datetime.datetime(2025, 10, 22, 16, 59, 41, 797493)
datetime.datetime(2025, 9, 22, 12, 43, 53, 619657)
datetime.datetime(2025, 5, 27, 18, 45, 57, 926103)
datetime.datetime(2025, 4, 1, 8, 43, 21, 838926)
datetime.datetime(2025, 6, 28, 10, 30, 29, 586896)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.date_time_this_year(before_now=False, after_now=True)
...
datetime.datetime(2025, 12, 29, 12, 16, 46, 712201)
datetime.datetime(2025, 12, 28, 3, 5, 17, 431469)
datetime.datetime(2025, 12, 22, 17, 34, 48, 446979)
datetime.datetime(2025, 12, 20, 3, 31, 37, 798313)
datetime.datetime(2025, 12, 24, 4, 23, 51, 26185)
day_of_month() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.day_of_month()
...
'02'
'31'
'14'
'27'
'11'
day_of_week() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.day_of_week()
...
'Sunday'
'Thursday'
'Wednesday'
'Wednesday'
'Tuesday'
future_date(end_date: date | datetime | timedelta | str | int = '+30d') date

获取一个基于从现在开始 1 天到给定日期之间的随机日期的 Date 对象。

参数:
  • end_date – 一个 DateParseType。默认为 "+30d"

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.future_date()
...
datetime.date(2026, 1, 10)
datetime.date(2026, 1, 7)
datetime.date(2025, 12, 29)
datetime.date(2025, 12, 24)
datetime.date(2025, 12, 31)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.future_date(end_date='+1y')
...
datetime.date(2026, 10, 20)
datetime.date(2026, 9, 18)
datetime.date(2026, 5, 19)
datetime.date(2026, 3, 21)
datetime.date(2026, 6, 21)
future_datetime(end_date: date | datetime | timedelta | str | int = '+30d', tzinfo: tzinfo | None = None) datetime

获取一个基于从现在开始 1 秒到给定日期之间的随机日期的 datetime 对象。

参数:
  • end_date – 一个 DateParseType。默认为 "+30d"

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.future_datetime()
...
datetime.datetime(2026, 1, 10, 8, 7, 22, 594731)
datetime.datetime(2026, 1, 7, 17, 51, 59, 54467)
datetime.datetime(2025, 12, 28, 14, 57, 3, 116942)
datetime.datetime(2025, 12, 23, 18, 33, 33, 957843)
datetime.datetime(2025, 12, 31, 8, 15, 25, 566513)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.future_datetime(end_date='+1y')
...
datetime.datetime(2026, 10, 20, 10, 8, 18, 596785)
datetime.datetime(2026, 9, 18, 20, 11, 8, 235670)
datetime.datetime(2026, 5, 18, 14, 46, 7, 924810)
datetime.datetime(2026, 3, 20, 13, 44, 29, 276056)
datetime.datetime(2026, 6, 20, 17, 51, 2, 894428)
iso8601(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None, sep: str = 'T', timespec: str = 'auto') str

获取 UNIX 纪元时间到现在之间的 ISO 8601 字符串。

参数:
  • tzinfo – 时区,datetime.tzinfo 子类的实例

  • end_datetime – 一个 DateParseType。默认为当前日期和时间

  • sep – 日期和时间之间的分隔符,默认为 'T'

  • timespec – 时间部分的格式说明符,默认为 'auto' - 请参阅 datetime.isoformat() 文档

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.iso8601()
...
'2017-04-02T07:10:07.502264'
'2012-05-31T01:50:08.077349'
'1993-07-14T15:27:56.829760'
'1984-06-27T17:48:32.588219'
'1998-08-11T10:27:26.209287'
month() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.month()
...
'04'
'05'
'07'
'06'
'08'
month_name() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.month_name()
...
'April'
'May'
'July'
'June'
'August'
past_date(start_date: date | datetime | timedelta | str | int = '-30d', tzinfo: tzinfo | None = None) date

获取一个基于给定日期和 1 天前之间的随机日期的 Date 对象。

参数:
  • start_date – 一个 DateParseType。默认为 "-30d"

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.past_date()
...
datetime.date(2025, 12, 10)
datetime.date(2025, 12, 7)
datetime.date(2025, 11, 28)
datetime.date(2025, 11, 23)
datetime.date(2025, 11, 30)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.past_date(start_date='-1y')
...
datetime.date(2025, 10, 19)
datetime.date(2025, 9, 17)
datetime.date(2025, 5, 17)
datetime.date(2025, 3, 19)
datetime.date(2025, 6, 19)
past_datetime(start_date: date | datetime | timedelta | str | int = '-30d', tzinfo: tzinfo | None = None) datetime

获取一个基于给定日期和 1 秒前之间的随机日期的 datetime 对象。

参数:
  • start_date – 一个 DateParseType。默认为 "-30d"

  • tzinfo – 时区,datetime.tzinfo 子类的实例

示例:

datetime(‘1999-02-02 11:42:52’)

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.past_datetime()
...
datetime.datetime(2025, 12, 11, 8, 7, 21, 594731)
datetime.datetime(2025, 12, 8, 17, 51, 58, 54467)
datetime.datetime(2025, 11, 28, 14, 57, 2, 116942)
datetime.datetime(2025, 11, 23, 18, 33, 32, 957843)
datetime.datetime(2025, 12, 1, 8, 15, 24, 566513)
pytimezone(*args: Any, **kwargs: Any) tzinfo | None

生成一个随机时区(有关任何参数,请参阅 faker.timezone),并返回一个可用作 datetime 或其他 faker 的 tzinfo 的 Python 对象。

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.pytimezone()
...
zoneinfo.ZoneInfo(key='Indian/Maldives')
zoneinfo.ZoneInfo(key='America/Barbados')
zoneinfo.ZoneInfo(key='Europe/Stockholm')
zoneinfo.ZoneInfo(key='Africa/Windhoek')
zoneinfo.ZoneInfo(key='Asia/Qatar')
time(pattern: str = '%H:%M:%S', end_datetime: date | datetime | timedelta | str | int | None = None) str

获取一个时间字符串(默认为 24 小时格式)

参数:
  • pattern – 格式

  • end_datetime – 一个 DateParseType。默认为当前日期和时间

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.time()
...
'07:10:07'
'01:50:08'
'15:27:56'
'17:48:32'
'10:27:26'
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.time(pattern='%I:%M %p')
...
'07:10 AM'
'01:50 AM'
'03:27 PM'
'05:48 PM'
'10:27 AM'
time_delta(end_datetime: date | datetime | timedelta | str | int | None = None) timedelta

获取一个随机的 timedelta 对象,其持续时间介于当前日期时间和 end_datetime 之间

参数:

end_datetime – 一个 DateParseType。默认为当前日期和时间

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.time_delta()
...
datetime.timedelta(0)
datetime.timedelta(0)
datetime.timedelta(0)
datetime.timedelta(0)
datetime.timedelta(0)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.time_delta(end_datetime='+30h')
...
datetime.timedelta(days=1, seconds=4797, microseconds=559965)
datetime.timedelta(seconds=81859, microseconds=75518)
datetime.timedelta(seconds=45421, microseconds=730730)
datetime.timedelta(seconds=27963, microseconds=9032)
datetime.timedelta(seconds=55217, microseconds=669908)
time_object(end_datetime: date | datetime | timedelta | str | int | None = None) time

获取一个 time 对象

参数:

end_datetime – 一个 DateParseType。默认为当前日期和时间

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.time_object()
...
datetime.time(7, 10, 7, 502264)
datetime.time(1, 50, 8, 77349)
datetime.time(15, 27, 56, 829760)
datetime.time(17, 48, 32, 588219)
datetime.time(10, 27, 26, 209287)
>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.time_object(end_datetime='+1h')
...
datetime.time(8, 0, 47, 420929)
datetime.time(2, 35, 36, 713200)
datetime.time(15, 53, 10, 887451)
datetime.time(18, 4, 4, 688520)
datetime.time(10, 58, 6, 798284)
time_series(start_date: date | datetime | timedelta | str | int = '-30d', end_date: date | datetime | timedelta | str | int = 'now', precision: float | None = None, distrib: Callable[[datetime], float] | None = None, tzinfo: tzinfo | None = None) Iterator[Tuple[datetime, Any]]

返回一个生成器,生成 (<datetime>, <value>) 元组。

数据点将从 start_date 开始,并按照 precision 指定的时间间隔生成。

参数:
  • start_date – 一个 DateParseType。默认为 "-30d"

  • end_date – 一个 DateParseType。默认为 "now"

  • precision – 一个浮点数,表示数据点之间的时间间隔。

默认为时间间隔的 1/30。:param distrib: 一个可调用对象,接受一个 datetime 对象并返回一个值。默认为均匀分布。:param tzinfo: 时区,datetime.tzinfo 子类的实例

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.time_series()
...
<generator object Provider.time_series at 0x7db940f37450>
<generator object Provider.time_series at 0x7db940f37450>
<generator object Provider.time_series at 0x7db940f37450>
<generator object Provider.time_series at 0x7db940f37450>
<generator object Provider.time_series at 0x7db940f37450>
timezone() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.timezone()
...
'Indian/Maldives'
'America/Barbados'
'Europe/Stockholm'
'Africa/Windhoek'
'Asia/Qatar'
unix_time(end_datetime: date | datetime | timedelta | str | int | None = None, start_datetime: date | datetime | timedelta | str | int | None = None) float

获取一个介于 1970 年 1 月 1 日和现在之间的 Unix 时间戳,除非传递了明确的 start_datetimeend_datetime 值。

在 Windows 上,小数部分始终为 0。

参数:
  • end_datetime – 一个 DateParseType 类型。默认为 Unix 纪元。

  • start_datetime – 一个 DateParseType 类型。默认为当前日期和时间。

示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.unix_time()
...
1491117007.5022635
1338429008.077349
742663676.82976
457206512.5882192
902831246.2092874
year() str
示例:

>>> Faker.seed(0)
>>> for _ in range(5):
...     fake.year()
...
'2017'
'2012'
'1993'
'1984'
'1998'