tempo comparação diferença 2 tempo entre a seqüência de data: a distância entre a hora atual (diferente formato de hora)

tempo comparação diferença 2 tempo entre a seqüência de data: a distância entre a hora atual (diferente formato de hora)

Primeiro, o fundo
pode ter de comparar a diferença de tempo de 2 de tempo entre a seqüência de data: a distância entre a hora atual (diferente formato de hora)
'20200401'
Agora
diferença de tempo:
0 anos 0 meses 2 dias 17 horas 46 minutos e 16 segundos

Em segundo lugar, a análise
usando o pitão,
função de comparação de escrita: gap_start2end ( '20200401', "a sequência de data actual", start_fomart = '% Y% m% d', end_fomart = '% Y% m-% d% H:% H:% S ')
diferença de tempo de retorno representa uma combinação de: ((0, 0, 2), (17, 46, 16))

Em terceiro lugar, o método de função encapsulado

Tempo de importação 
importação datetime 
importação Math 


# um mesmo tempo a partir do formato de data 

def date2obj (DATE_STR = '2015/04/07 19:11:21 ', FORMAT = '% Y% m-% d% H:% M: S% '): 
    ' '' 
    data de data de transferência de cadeia de objectos 
    : param DATE_STR: data de cadeia 
    : formato param: data cadeia de formato 
    : retorno: data objecto 
    saída d_obj.year, 2015 
    saída d_obj.month 4. 
    d_obj.day saída 7 
    ' '' 
    t_str = DATE_STR 
    d_obj = datetime.datetime.strptime (t_str, o formato) 

    de retorno d_obj 


# 1, sec intervalo S. 
def time_seconds_span (start_date1, end_date2, fomart1 = '% Y% m-% d% H:% M: S% 'fomart2 =' % Y-M-D %%% H:% M:% S '): 
    d1_obj = date2obj (START_DATE1, fomart1)
    d2_obj = date2obj (end_date2, fomart2) 

    retorno (d2_obj - d1_obj) .seconds 


# 2, min分钟时间间隔
def time_minutes_span (start_date1, end_date2, fomart1 = '% Y% m-% d% H:% M:% S' , fomart2 = '% Y% m-% d% H:% M:% S'): 
    d1_obj = date2obj (start_date1, fomart1) 
    d2_obj = date2obj (end_date2, fomart2) 
    seconds_span = (d2_obj - d1_obj) .seconds 
    #向下取整
    mins_span = Math.floor (seconds_span / 60) 

    voltar mins_span 


# 3, h小时时间间隔
def time_hours_span (start_date1, end_date2, fomart1 = '% Y% m-% d% H:% M:% S', fomart2 = '% Y-% m-% d% H:% M:% S'): 
    d1_obj = date2obj (start_date1, fomart1) 
    d2_obj = date2obj (end_date2, fomart2) 
    seconds_span = (d2_obj - d1_obj) .seconds
    # Arredondado para baixo 
    hours_span = Math.floor (seconds_span / (60 * 60)) 

    retorno hours_span 


#. 4, D dias de intervalo. Com ou sem um h, min, s, cálculo, ignora h, min, s, contando apenas o número de dias, meses e anos.  
    # arredondado para baixo. Basta levar alguns dias.
date_days_span DEF (START_DATE1, END_DATE2, fomart1 = 'M - %%% Y-D', fomart2 = 'M - %%% Y-D'): 
    d1_obj = date2obj (START_DATE1, fomart1) 
    d2_obj = date2obj (END_DATE2, fomart2) 

    # apenas tomar alguns dias diferença. Equivalente baixo arredondado. 
    = Days_span (d2_obj - d1_obj) .days 

    retorno days_span 


. # 5, o mês de maio O número de intervalos de tempo. Com ou sem um h, min, s, cálculo, ignora h, min, s, contando apenas o número de dias, meses e anos. 
date_months_span DEF (START_DATE1, END_DATE2, fomart1 = 'M - %%% Y-D', fomart2 = 'M - %%% Y-D'): 
    d1_obj = date2obj (START_DATE1, fomart1) 
    d2_obj = date2obj (END_DATE2, fomart2) 

    = days_span (d2_obj - d1_obj) .days 
    months_span = Math.floor (days_span / 30) 

    de retorno months_span 


. # 6, o número de anos de intervalo ano. Com ou sem um h, min, s, cálculo, ignora h, min, s, contando apenas o número de dias, meses e anos. 
DEF date_years_span (START_DATE1, END_DATE2, fomart1 = 'M - %%% Y-D', fomart2 = '%% Y-M- D% '): 
    d1_obj = date2obj (START_DATE1, fomart1) 
    d2_obj = date2obj (END_DATE2, fomart2) 

    # arredondado para baixo. Basta levar alguns dias. 
    = Days_span (d2_obj - d1_obj) .days 
    years_span = Math.floor (days_span / (30 * 12 é)) 

    retornar years_span 


DEF gap_start2end (start_str, end_str, start_fomart = '% Y-M-D %%% H:% M:% S 'end_fomart =' % Y-M-D %%% H:% M:% S '): 
    ' '' 
    comparação do tempo de diferença duas vezes 
    : param start_str: data de início da sequência de tempo 
    : param end_str: tempo fora data de corda 
    : param start_fomart: formato de cadeia de data hora de início da leitura
    : Param end_fomart: tempo de corte para ler a cadeia de formato de data 
    : retorno: o número de vezes que a composio de matriz de diferença ((Y, M, D), (H, min, s))  
    # exemplificados: 
    '2009-02 -28 00:00:04 '
    '2010-03-01 01:02:03 ' 
    saída ((1, 0, 6), (1, 1, 59)) 
    significa: intervalo de 1 ano 0 meses 6 dias, 1 hora, 1 minuto 59 segundos 

    # tempo empurrando para trás Descrição: 
    # sum_days = Y * 30 * 12 é de + m * 30 + D 
    # sum_seconds = sum_days * 24 * 60 * 60 + H * 60 * 60 + min * 60 + s 
    '' ' 

    # número de anos diferença 
    years_gap = date_years_span (start_str, end_str, start_fomart, end_fomart) 
    # meses número diferença 
    months_gap = date_months_span (start_str, end_str, start_fomart, end_fomart) 
    # número de dias diferença 
    days_gap = date_days_span (start_str, end_str, start_fomart, end_fomart) 
    # indica o número de combinações de datas tomadas 
    y = years_gap
    12 é months_gap% = m 
    D = 30% days_gap 
    Exemplos de saída Descrição:
 
    horas número diferença #
    hours_gap = time_hours_span (start_str, end_str, start_fomart, end_fomart) 
    Número de diferença # minutos 
    mins_gap = time_minutes_span (start_str, end_str, start_fomart, end_fomart) 
    # segundos diferença 
    seconds_gap = time_seconds_span (start_str, end_str, start_fomart, end_fomart) 
    # indica uma combinação do tempo necessário número 
    H = hours_gap 
    min = 60% mins_gap 
    seg seconds_gap = 60% 

    de retorno ((Y, m, D), (H, min, s)) 


DEF time2date (timeint = 1565673941, o formato = "% D% Y-M-% H%:% M:% s "): 
    '' ' 
    cadeia de data timestamp na unidade s, s 
    : param timeint: timestamp 
    : retorno: sequência de data 
    (1565673941," % Y-M-D%% ") de saída 2019/08/13
    (1565673941, "% Y-% m- % d% H:% M:% S") de saída 13:25:41 2019/08/13 
    (1565673941 "o Y% m%% D") de saída 20190813 
    '' ' 
    = time.localtime LOCAL_TIME (timeint) 
    data_head o time.strftime = (o formato, LOCAL_TIME) 

    retorno data_head 

Se o __name__ == '__main__': 
    # # um mesmo tempo a partir do formato de data. 
    START_DATE = # '00:00:04 2009-02-28' 
    # END_DATE = '2010-03-01 01:02:03' 
    # Cha = gap_start2end (START_DATE, END_DATE) 
    # impressão (Cha) 

    # Em segundo lugar, um formato diferente data a distância do tempo. O tempo agora distância 
    START_DATE = '20, 200,401' 
    END_DATE = time2date (a time.time ()) 
    cha_now = gap_start2end (START_DATE, END_DATE, start_fomart = '% m% D% o Y', end_fomart = '

  

Acho que você gosta

Origin www.cnblogs.com/andy9468/p/12627927.html
Recomendado
Clasificación