简体   繁体   中英

Convert Shell date format to Python date format

Can below piece of shell date format be converted to python date format?

date_used = $(date --date="$(date +%Y-%m-15) - 1 month" "+%Y_%m")

As per my understanding this above format is just taking day as 15 of current month and it simply subtracts 1 month and results in giving output in the format of year_month.

Output of the above shell date format -->

echo $date_used = 2022_05

Can this particular scenario be done using python?

Any update about it would be really appreciable.

An equivalent would be:

from datetime import datetime,timedelta

# Current date, replace date with 15, subtract 30 days and format
date_used = (datetime.now().replace(day=15) - timedelta(days=30)).strftime('%Y_%m')
print(date_used)

Output:

2022_05

You can use python's datetime module to do this

it has a function named strptime you can use to read date and time data with format code very similar to unix date format (or maybe its even same i'm not sure)

and strftime to output in a certain format as well

you can see the functions and the format code to see if there's any different on https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes

Example code

from datetime import datetime, timedelta

date = datetime.strptime((datetime.now() - timedelta(days=30)).strftime("%Y-%m") + "-15", "%Y-%m-%d")
print(date)

print(date.strftime("%Y_%m"))

output

2022-05-15 00:00:00
2022_05

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM