faker.providers.date_time¶
- class faker.providers.date_time.Provider(generator: Any)¶
Bases:
BaseProvider- am_pm() str¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.am_pm() ... 'AM' 'PM' 'AM' 'AM' 'AM'
- century() str¶
- Example:
‘XVII’
- Examples:
>>> 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¶
Get a date string between January 1, 1970 and now.
- Parameters:
pattern – Format of the date (year-month-day by default)
- Example:
‘2008-11-27’
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date() ... '2016-12-20' '2012-02-28' '1993-05-24' '1984-05-27' '1998-06-10'
- date_between(start_date: date | datetime | timedelta | str | int = '-30y', end_date: date | datetime | timedelta | str | int = 'today') date¶
Get a Date object based on a random date between two given dates. Accepts date strings that can be recognized by strtotime().
- Parameters:
start_date – Defaults to 30 years ago
end_date – Defaults to “today”
- Example:
Date(‘1999-02-02’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_between() ... datetime.date(2020, 12, 15) datetime.date(2018, 5, 12) datetime.date(2008, 3, 28) datetime.date(2003, 5, 23) datetime.date(2010, 12, 17)
- date_between_dates(date_start: date | datetime | timedelta | str | int | None = None, date_end: date | datetime | timedelta | str | int | None = None) date¶
Takes two Date objects and returns a random date between the two given dates. Accepts Date or datetime objects
- Parameters:
date_start – Date
date_end – Date
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_between_dates() ... datetime.date(2025, 8, 16) datetime.date(2025, 8, 16) datetime.date(2025, 8, 16) datetime.date(2025, 8, 16) datetime.date(2025, 8, 16)
- date_object(end_datetime: datetime | None = None) date¶
Get a date object between January 1, 1970 and now
- Example:
datetime.date(2016, 9, 20)
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_object() ... datetime.date(2016, 12, 20) datetime.date(2012, 2, 28) datetime.date(1993, 5, 24) datetime.date(1984, 5, 27) datetime.date(1998, 6, 10)
- date_of_birth(tzinfo: tzinfo | None = None, minimum_age: int = 0, maximum_age: int = 115) date¶
Generate a random date of birth represented as a Date object, constrained by optional miminimum_age and maximum_age parameters.
- Parameters:
tzinfo – Defaults to None.
minimum_age – Defaults to 0.
maximum_age – Defaults to 115.
- Example:
Date(‘1979-02-02’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_of_birth() ... datetime.date(2007, 7, 30) datetime.date(1997, 7, 18) datetime.date(1958, 5, 30) datetime.date(1939, 8, 29) datetime.date(1968, 12, 6)
- date_this_century(before_today: bool = True, after_today: bool = False) date¶
Gets a Date object for the current century.
- Parameters:
before_today – include days in current century before today
after_today – include days in current century after today
- Example:
Date(‘2012-04-04’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_century() ... datetime.date(2021, 8, 20) datetime.date(2019, 6, 3) datetime.date(2010, 10, 11) datetime.date(2006, 8, 20) datetime.date(2013, 2, 6)
- date_this_decade(before_today: bool = True, after_today: bool = False) date¶
Gets a Date object for the decade year.
- Parameters:
before_today – include days in current decade before today
after_today – include days in current decade after today
- Example:
Date(‘2012-04-04’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_decade() ... datetime.date(2024, 9, 30) datetime.date(2024, 4, 5) datetime.date(2022, 5, 13) datetime.date(2021, 6, 15) datetime.date(2022, 11, 16)
- date_this_month(before_today: bool = True, after_today: bool = False) date¶
Gets a Date object for the current month.
- Parameters:
before_today – include days in current month before today
after_today – include days in current month after today
- Example:
dtdate(‘2012-04-04’)
- Returns:
dtdate
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_month() ... datetime.date(2025, 8, 13) datetime.date(2025, 8, 12) datetime.date(2025, 8, 7) datetime.date(2025, 8, 4) datetime.date(2025, 8, 8)
- date_this_year(before_today: bool = True, after_today: bool = False) date¶
Gets a Date object for the current year.
- Parameters:
before_today – include days in current year before today
after_today – include days in current year after today
- Example:
Date(‘2012-04-04’)
- Returns:
Date
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_this_year() ... datetime.date(2025, 7, 11) datetime.date(2025, 6, 22) datetime.date(2025, 4, 6) datetime.date(2025, 2, 28) datetime.date(2025, 4, 27)
- date_time(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None) datetime¶
Get a datetime object for a date between January 1, 1970 and now
- Parameters:
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2005-08-16 20:39:21’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time() ... datetime.datetime(2016, 12, 20, 6, 55, 49, 805435) datetime.datetime(2012, 2, 28, 14, 45, 2, 70333) datetime.datetime(1993, 5, 24, 8, 8, 46, 388401) datetime.datetime(1984, 5, 27, 3, 46, 15, 609479) datetime.datetime(1998, 6, 10, 1, 35, 0, 630413)
- 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¶
Get a datetime object for a date between January 1, 001 and now
- Parameters:
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1265-03-22 21:15:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_ad() ... datetime.datetime(1710, 8, 21, 9, 30, 45, 275291) datetime.datetime(1535, 7, 29, 14, 51, 15, 953705) datetime.datetime(852, 7, 1, 10, 31, 38, 432396) datetime.datetime(525, 3, 18, 5, 52, 56, 579330) datetime.datetime(1036, 2, 21, 10, 0, 41, 622616)
- date_time_between(start_date: date | datetime | timedelta | str | int = '-30y', end_date: date | datetime | timedelta | str | int = 'now', tzinfo: tzinfo | None = None) datetime¶
Get a datetime object based on a random date between two given dates. Accepts date strings that can be recognized by strtotime().
- Parameters:
start_date – Defaults to 30 years ago
end_date – Defaults to “now”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_between() ... datetime.datetime(2020, 12, 15, 7, 35, 20, 236214) datetime.datetime(2018, 5, 12, 21, 0, 6, 808743) datetime.datetime(2008, 3, 29, 2, 29, 47, 361449) datetime.datetime(2003, 5, 23, 19, 40, 23, 49189) datetime.datetime(2010, 12, 17, 22, 57, 19, 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¶
Takes two datetime objects and returns a random datetime between the two given datetimes. Accepts datetime objects.
- Parameters:
datetime_start – datetime
datetime_end – datetime
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_between_dates() ... datetime.datetime(2025, 8, 16, 0, 24, 37) datetime.datetime(2025, 8, 16, 0, 24, 37) datetime.datetime(2025, 8, 16, 0, 24, 37) datetime.datetime(2025, 8, 16, 0, 24, 37) datetime.datetime(2025, 8, 16, 0, 24, 37)
- date_time_this_century(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime¶
Gets a datetime object for the current century.
- Parameters:
before_now – include days in current century before today
after_now – include days in current century after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_century() ... datetime.datetime(2021, 8, 20, 23, 0, 18, 178815) datetime.datetime(2019, 6, 3, 16, 59, 49, 713674) datetime.datetime(2010, 10, 11, 3, 16, 43, 503869) datetime.datetime(2006, 8, 20, 4, 57, 3, 641736) datetime.datetime(2013, 2, 6, 0, 41, 33, 286516)
- date_time_this_decade(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime¶
Gets a datetime object for the decade year.
- Parameters:
before_now – include days in current decade before today
after_now – include days in current decade after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_decade() ... datetime.datetime(2024, 9, 30, 10, 57, 57, 745078) datetime.datetime(2024, 4, 5, 20, 25, 52, 389096) datetime.datetime(2022, 5, 13, 20, 40, 9, 119319) datetime.datetime(2021, 6, 15, 19, 39, 58, 860831) datetime.datetime(2022, 11, 16, 4, 0, 30, 345276)
- date_time_this_month(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime¶
Gets a datetime object for the current month.
- Parameters:
before_now – include days in current month before today
after_now – include days in current month after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_month() ... datetime.datetime(2025, 8, 13, 16, 20, 17, 930651) datetime.datetime(2025, 8, 12, 9, 10, 28, 404864) datetime.datetime(2025, 8, 7, 7, 34, 41, 952982) datetime.datetime(2025, 8, 4, 21, 18, 58, 528420) datetime.datetime(2025, 8, 8, 16, 16, 7, 191657)
- date_time_this_year(before_now: bool = True, after_now: bool = False, tzinfo: tzinfo | None = None) datetime¶
Gets a datetime object for the current year.
- Parameters:
before_now – include days in current year before today
after_now – include days in current year after today
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘2012-04-04 11:02:02’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.date_time_this_year() ... datetime.datetime(2025, 7, 11, 16, 45, 24, 100665) datetime.datetime(2025, 6, 22, 1, 38, 47, 612641) datetime.datetime(2025, 4, 6, 11, 26, 47, 484744) datetime.datetime(2025, 2, 28, 18, 41, 4, 860186) datetime.datetime(2025, 4, 27, 1, 38, 4, 8022)
- day_of_month() str¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.day_of_month() ... '20' '28' '24' '27' '10'
- day_of_week() str¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.day_of_week() ... 'Tuesday' 'Tuesday' 'Monday' 'Sunday' 'Wednesday'
- future_date(end_date: date | datetime | timedelta | str | int = '+30d', tzinfo: tzinfo | None = None) date¶
Get a Date object based on a random date between 1 day from now and a given date. Accepts date strings that can be recognized by strtotime().
- Parameters:
end_date – Defaults to “+30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
dtdate(‘2030-01-01’)
- Returns:
dtdate
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.future_date() ... datetime.date(2025, 9, 10) datetime.date(2025, 9, 7) datetime.date(2025, 8, 29) datetime.date(2025, 8, 24) datetime.date(2025, 8, 31)
- future_datetime(end_date: date | datetime | timedelta | str | int = '+30d', tzinfo: tzinfo | None = None) datetime¶
Get a datetime object based on a random date between 1 second form now and a given date. Accepts date strings that can be recognized by strtotime().
- Parameters:
end_date – Defaults to “+30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.future_datetime() ... datetime.datetime(2025, 9, 10, 8, 23, 38, 594731) datetime.datetime(2025, 9, 7, 18, 8, 15, 54467) datetime.datetime(2025, 8, 28, 15, 13, 19, 116942) datetime.datetime(2025, 8, 23, 18, 49, 49, 957843) datetime.datetime(2025, 8, 31, 8, 31, 41, 566513)
- iso8601(tzinfo: tzinfo | None = None, end_datetime: date | datetime | timedelta | str | int | None = None, sep: str = 'T', timespec: str = 'auto') str¶
Get a timestamp in ISO 8601 format (or one of its profiles).
- Parameters:
tzinfo – timezone, instance of datetime.tzinfo subclass
sep – separator between date and time, defaults to ‘T’
timespec – format specifier for the time part, defaults to ‘auto’ - see datetime.isoformat() documentation
- Example:
‘2003-10-21T16:05:52+0000’
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.iso8601() ... '2016-12-20T06:55:49.805435' '2012-02-28T14:45:02.070333' '1993-05-24T08:08:46.388401' '1984-05-27T03:46:15.609479' '1998-06-10T01:35:00.630413'
- month() str¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.month() ... '12' '02' '05' '05' '06'
- month_name() str¶
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.month_name() ... 'December' 'February' 'May' 'May' 'June'
- past_date(start_date: date | datetime | timedelta | str | int = '-30d', tzinfo: tzinfo | None = None) date¶
Get a Date object based on a random date between a given date and 1 day ago. Accepts date strings that can be recognized by strtotime().
- Parameters:
start_date – Defaults to “-30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
dtdate(‘1999-02-02’)
- Returns:
dtdate
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.past_date() ... datetime.date(2025, 8, 10) datetime.date(2025, 8, 7) datetime.date(2025, 7, 29) datetime.date(2025, 7, 24) datetime.date(2025, 7, 31)
- past_datetime(start_date: date | datetime | timedelta | str | int = '-30d', tzinfo: tzinfo | None = None) datetime¶
Get a datetime object based on a random date between a given date and 1 second ago. Accepts date strings that can be recognized by strtotime().
- Parameters:
start_date – Defaults to “-30d”
tzinfo – timezone, instance of datetime.tzinfo subclass
- Example:
datetime(‘1999-02-02 11:42:52’)
- Returns:
datetime
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.past_datetime() ... datetime.datetime(2025, 8, 11, 8, 23, 37, 594731) datetime.datetime(2025, 8, 8, 18, 8, 14, 54467) datetime.datetime(2025, 7, 29, 15, 13, 18, 116942) datetime.datetime(2025, 7, 24, 18, 49, 48, 957843) datetime.datetime(2025, 8, 1, 8, 31, 40, 566513)
- pytimezone(*args: Any, **kwargs: Any) tzinfo | None¶
Generate a random timezone (see faker.timezone for any args) and return as a python object usable as a tzinfo to datetime or other fakers.
- Example:
faker.pytimezone()
- Returns:
dateutil.tz.tz.tzfile
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.pytimezone() ... tzfile('/usr/share/zoneinfo/Indian/Maldives') tzfile('/usr/share/zoneinfo/America/Barbados') tzfile('/usr/share/zoneinfo/Europe/Stockholm') tzfile('/usr/share/zoneinfo/Africa/Windhoek') tzfile('/usr/share/zoneinfo/Asia/Qatar')
- time(pattern: str = '%H:%M:%S', end_datetime: date | datetime | timedelta | str | int | None = None) str¶
Get a time string (24h format by default)
- Parameters:
pattern – format
- Example:
‘15:02:34’
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.time() ... '06:55:49' '14:45:02' '08:08:46' '03:46:15' '01:35:00'
- time_delta(end_datetime: date | datetime | timedelta | str | int | None = None) timedelta¶
Get a timedelta object
- Examples:
>>> 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)
- time_object(end_datetime: date | datetime | timedelta | str | int | None = None) time¶
Get a time object
- Example:
datetime.time(15, 56, 56, 772876)
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.time_object() ... datetime.time(6, 55, 49, 805435) datetime.time(14, 45, 2, 70333) datetime.time(8, 8, 46, 388401) datetime.time(3, 46, 15, 609479) datetime.time(1, 35, 0, 630413)
- 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]]¶
Returns a generator yielding tuples of
(<datetime>, <value>).The data points will start at
start_date, and be at every time interval specified byprecision.distribis a callable that accepts<datetime>and returns<value>- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.time_series() ... <generator object Provider.time_series at 0x7fffca6ada20> <generator object Provider.time_series at 0x7fffca6ada20> <generator object Provider.time_series at 0x7fffca6ada20> <generator object Provider.time_series at 0x7fffca6ada20> <generator object Provider.time_series at 0x7fffca6ada20>
- timezone() str¶
- Examples:
>>> 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¶
Get a timestamp between January 1, 1970 and now, unless passed explicit start_datetime or end_datetime values.
On Windows, the decimal part is always 0.
- Example:
1061306726.6
- Examples:
>>> Faker.seed(0) >>> for _ in range(5): ... fake.unix_time() ... 1482216949.8054354 1330440302.0703332 738230926.3884012 454477575.6094794 897442500.6304133