簡體   English   中英

如何更改日期的格式?

[英]How can i change the format of the date?

elif s[0] == 'FindTrend':
        stocx = [item[0] for item in stocklist]
        stocx1 = [item[1] for item in stocklist]

        stocxx = [item[0] for item in stocklist1]
        stocxx1 = [item[1] for item in stocklist1]

        dat1 = s[2].split('-')
        year3 = dat1[0]
        month3 = dat1[1].lstrip('0')
        day3 = dat1[2].lstrip('0')
        datt2 = month3+'/'+day3+'/'+year3
        
        dat2 = s[3].split('-')
        year4 = dat2[0]
        month4 = dat2[1].lstrip('0')
        day4 = dat2[2].lstrip('0')
        datt3 = month4+'/'+day4+'/'+year4

我如何將 output 更改為像“YYYY-MM-DD”這樣的格式(例如:2019-07-06)

我嘗試以不同的方式安排它,但我卡住了

這是任何願意提供幫助的人的完整代碼行:)

from collections import namedtuple
stoc = namedtuple('stoc','date close')
def StockMarket():
    'This function reads two stock files, PFE and MRNA, it then is able to find the price on a specific date and the maxpossible profit and loss, as well as the morning and evening star trends.'
    stocks = {}
    stocks1 = {}
    stocklist = []
    stocklist1 = []
    dates = []
    while True:
        s = input('$ ').split()
        if s[0] == 'quit':
            return
        elif s[0] == 'ReadFiles':
            for entry in open(s[1],'r'):
                elist = entry.split(',')
                stocks[elist[0]] = elist[4]
                readfiles = stoc(elist[0], elist[4])
                stocklist.append(readfiles)
            for entry1 in open(s[2],'r'):
                elist1 = entry1.split(',')
                stocks1[elist1[0]] = elist1[4]
                readfiles1 = stoc(elist1[0], elist1[4])
                stocklist1.append(readfiles1)
        elif s[0] == 'PricesOnDate':
            dates = s[1].split('-')
            year = dates[0]
            month = dates[1].lstrip('0')
            day = dates[2].lstrip('0')
            date1 = month+'/'+day+'/'+year
            print('PFE:', stocks[date1], '|', 'MRNA:', stocks1[date1])
        elif s[0] == 'MaxPossible':
            sto = [item[0] for item in stocklist]
            sto1 = [item[1] for item in stocklist]

            st = [item[0] for item in stocklist1]
            st1 = [item[1] for item in stocklist1]
            
            dates1 = s[3].split('-')
            year1 = dates1[0]
            month1 = dates1[1].lstrip('0')
            day1 = dates1[2].lstrip('0')
            date2 = month1+'/'+day1+'/'+year1
            
            dates2 = s[4].split('-')
            year2 = dates2[0]
            month2 = dates2[1].lstrip('0')
            day2 = dates2[2].lstrip('0')
            date3 = month2+'/'+day2+'/'+year2


            if s[1] == 'profit':
                if s[2] == 'PFE':
                    stocksub_list = sto1[sto.index(date2):sto.index(date3)+1]
                    for i in range(0, len(stocksub_list)):
                        stocksub_list[i] = float(stocksub_list[i])
                    a = max(stocksub_list)
                    price = stocksub_list[0]
                    b = min(stocksub_list[stocksub_list.index(price):stocksub_list.index(max(stocksub_list))+1])
                    print(a-b)

                if s[2] == 'MRNA':
                    stocksub_list1 = st1[st.index(date2):st.index(date3)+1]
                    for i in range(0, len(stocksub_list1)):
                        stocksub_list1[i] = float(stocksub_list1[i])
                    a1 = max(stocksub_list1)
                    price1 = stocksub_list1[0]
                    b1 = min(stocksub_list1[stocksub_list1.index(price1):stocksub_list1.index(max(stocksub_list1))+1])
                    print(a1-b1)

            if s[1] == 'loss':
                if s[2] == 'PFE':
                    stocksub_list = sto1[sto.index(date2):sto.index(date3)+1]
                    for i in range(0, len(stocksub_list)):
                        stocksub_list[i] = float(stocksub_list[i])
                    a2 = max(stocksub_list)
                    price2 = None
                    b2 = min(stocksub_list[stocksub_list.index(max(stocksub_list)):])
                    print(a2-b2)
                    
                if s[2] == 'MRNA':
                    stocksub_list1 = st1[st.index(date2):st.index(date3)+1]
                    for i in range(0, len(stocksub_list1)):
                        stocksub_list1[i] = float(stocksub_list1[i])
                    a3 = max(stocksub_list1)
                    price3 = None
                    b3 = min(stocksub_list1[stocksub_list1.index(max(stocksub_list1)):])
                    print(a3-b3)

        elif s[0] == 'FindTrend':
            stocx = [item[0] for item in stocklist]
            stocx1 = [item[1] for item in stocklist]

            stocxx = [item[0] for item in stocklist1]
            stocxx1 = [item[1] for item in stocklist1]

            dat1 = s[2].split('-')
            year3 = dat1[0]
            month3 = dat1[1].lstrip('0')
            day3 = dat1[2].lstrip('0')
            datt2 = month3+'/'+day3+'/'+year3
            
            dat2 = s[3].split('-')
            year4 = dat2[0]
            month4 = dat2[1].lstrip('0')
            day4 = dat2[2].lstrip('0')
            datt3 = month4+'/'+day4+'/'+year4

            if s[1] == 'PFE':
                if datt2 not in stocx:
                    pass
                elif datt3 not in stocx:
                    pass
                else:
                    stock_list = stocx[stocx.index(datt2):stocx.index(datt3)+1]
                    stock_listt = stocx1[stocx.index(datt2):stocx.index(datt3)+1]
                    f = [0] * len(stock_listt)
                    for j in stock_listt:
                        if stock_listt.index(j) < 3:
                            print(stock_list[stock_listt.index(j)] + ' | ' + stock_listt[stock_listt.index(j)])
                        elif float(stock_listt[stock_listt.index(j)]) < float(stock_listt[stock_listt.index(j)-1]) and float(stock_listt[stock_listt.index(j)-1]) > float(stock_listt[stock_listt.index(j)-2]) and float(stock_listt[stock_listt.index(j)-2]) and float(stock_listt[stock_listt.index(j)-2]) > float(stock_listt[stock_listt.index(j)-3]) and 1 not in f[stock_listt.index(j)-4:stock_listt.index(j)-1]:
                            f[stock_listt.index(j)] = 1
                            print(stock_list[stock_listt.index(j)] + ' | ' + stock_listt[stock_listt.index(j)] + ' | sell')
                        elif float(stock_listt[stock_listt.index(j)]) > float(stock_listt[stock_listt.index(j)-1]) and float(stock_listt[stock_listt.index(j)-1]) < float(stock_listt[stock_listt.index(j)-2]) and float(stock_listt[stock_listt.index(j)-2]) and float(stock_listt[stock_listt.index(j)-2]) < float(stock_listt[stock_listt.index(j)-3]) and 1 not in f[stock_listt.index(j)-4:stock_listt.index(j)-1]:
                            f[stock_listt.index(j)] = 1
                            print(stock_list[stock_listt.index(j)] + ' | ' + stock_listt[stock_listt.index(j)] + ' | buy')
                        else:
                            print(stock_list[stock_listt.index(j)] + ' | ' + stock_listt[stock_listt.index(j)])
            if s[1] == 'MRNA':
                if datt2 not in stocxx:
                    pass
                elif datt3 not in stocxx:
                    pass
                else:
                    stock_list1 = stocxx[stocxx.index(datt2):stocxx.index(datt3)+1]
                    stock_listt1 = stocxx1[stocxx.index(datt2):stocxx.index(datt3)+1]
                    f1 = [0] * len(stock_listt1)
                    for m in stock_listt1:
                        if stock_listt1.index(m) < 3:
                            print(stock_list1[stock_listt1.index(m)] + ' | ' + stock_listt1[stock_listt1.index(m)])
                        elif float(stock_listt1[stock_listt1.index(m)]) < float(stock_listt1[stock_listt1.index(m)-1]) and float(stock_listt1[stock_listt1.index(m)-1]) > float(stock_listt1[stock_listt1.index(m)-2]) and float(stock_listt1[stock_listt1.index(m)-2]) and float(stock_listt1[stock_listt1.index(m)-2]) > float(stock_listt1[stock_listt1.index(m)-3]) and 1 not in f1[stock_listt1.index(m)-4:stock_listt1.index(m)-1]:
                            f1[stock_listt1.index(m)] = 1
                            print(stock_list1[stock_listt1.index(m)] + ' | ' + stock_listt1[stock_listt1.index(m)] + ' | sell')
                        elif float(stock_listt1[stock_listt1.index(m)]) > float(stock_listt1[stock_listt1.index(m)-1]) and float(stock_listt1[stock_listt1.index(m)-1]) < float(stock_listt1[stock_listt1.index(m)-2]) and float(stock_listt1[stock_listt1.index(m)-2]) and float(stock_listt1[stock_listt1.index(m)-2]) < float(stock_listt1[stock_listt1.index(m)-3]) and 1 not in f1[stock_listt1.index(m)-4:stock_listt1.index(m)-1]:
                            f1[stock_listt1.index(m)] = 1
                            print(stock_list1[stock_listt1.index(m)] + ' | ' + stock_listt1[stock_listt1.index(m)] + ' | buy')
                        else:
                            print(stock_list1[stock_listt1.index(m)] + ' | ' + stock_listt1[stock_listt1.index(m)])

StockMarket()

使用 Python 的內置datetime時間是字符串解析的強大替代方案。 這是一個小例子:

import datetime
d = datetime.datetime.strptime('31-12-1999', '%d-%m-%Y')

print("0:", type(d))
print("1:", d.strftime('%Y-%m-%d'))
print("2:", d.strftime('%m-%d-%Y'))

0: <class 'datetime.datetime'>
1: 1999-12-31
2: 12-31-1999

您可以計算日期之間的天數:

# days between dates
d1 = datetime.datetime.strptime('2020-02-29', '%Y-%m-%d')
d2 = datetime.datetime.strptime('2020-03-01', '%Y-%m-%d')
d2 - d1  # datetime.timedelta(days=1)

您可以從日期中添加或減去時間增量:

# days before or after a date
print(d1 - datetime.timedelta(days=60))  # 2019-12-31 00:00:00
print(d1 + datetime.timedelta(days=30))  # 2020-03-30 00:00:00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM