How to Generate Random Year in Python with format YYYY?

Question:

I have this code to generate fake name, age, address, I want to know what is the line to generate fake year in YYYY format?

def create_fake_users(n):
    """Generate fake users."""
    faker = Faker()
    for i in range(n):
        user = User(name=faker.name(),
                    age=random.randint(20, 80),
                    address=faker.address().replace('n', ', '),
                    phone=faker.phone_number(),
                    email=faker.email())
        db.session.add(user)
    db.session.commit()
    print(f'Added {n} fake users to the database.')
Asked By: Freya the Goddess

||

Answers:

You can use faker to generate random dates as well:

from faker import Faker
fake = Faker()

#one hundred years from today
fake.date_between(start_date='today', end_date='+100y')
#datetime.date(2038, 5, 10)

# last one hundred years
fake.date_time_between(start_date='-100y', end_date='now')
#datetime.datetime(1989, 10, 7, 19, 47, 27)

If you just want the year in YYYY then:

fake.date_between(start_date='today', end_date='+100y').year
#2038

fake.date_time_between(start_date='-100y', end_date='now').year
#1989
Answered By: God Is One

I hope, this works for your solution

from faker import Faker
import datetime
fake = Faker()
date = fake.date()
datetime_object = datetime.datetime.strptime(date, '%Y-%m-%d')
datetime_object.year
Answered By: Muhammad Ali
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.