如何在python中将时间戳转换为特定的数据时间格式?

时间:2020-07-24 09:03:10

标签: python datetime automation

package main

import (
    "fmt"
    "sort"
)

func main() {
    fmt.Println("Hello, playground")

    first := []string{"pippo", "pluto", "topolino"}
    second := []string{"pippo", "pluto", "minny"}
    result := make([]string, 0)

    sort.Strings(second)

    a := len(second)
    for _, r := range first {
        if a == sort.SearchStrings(second, r) {
            result = append(result, r)
        }

    }

    fmt.Println(result)
}

我得到的输出是07/18/2020,13:32:33但我需要 输出应为:7/18/2020,1:32:33 PM

1 个答案:

答案 0 :(得分:1)

请参阅下面的解决方案和说明/建议注释。

解决方案

from datetime import datetime
import re

format = '%m/%d/%Y %I:%M %p'
timestamp = 1595059353398/1000
dt_object = datetime.fromtimestamp(timestamp)
date_time = dt_object.strftime(format)
date_time = re.sub('(^0)|((?<=\/)0)|(?<=\s)0', '', date_time)
print(date_time)

格式

format中,%I指定12小时制,%p指定与AM或PM对应的语言环境-请参见datetime docs

re去除前导零

该解决方案利用内置re模块替换字符串((^0)中任何'/'实例之后的开头(((?<=\/)0))处可能存在的任何前导零。 {1}})或空格((?<=\s)0)之后-根据问题中描述的所需输出。

我会考虑考虑您的需求,并评估您是否确实需要删除前导零(根据原始文章中描述的所需输出),以固定长度(即允许前导零)工作肯定有其优势在许多用例中。

如果您确定不再希望删除生成的字符串中的前导零,则只需省略行date_time = re.sub(*args)