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.')
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
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
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.')
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
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