gpt4 book ai didi

Python Xlsxwriter - 使日期尊重不同的语言环境格式

转载 作者:行者123 更新时间:2023-12-04 10:37:51 24 4
gpt4 key购买 nike

使用 Xlsx 编写器,我想编写将遵守操作系统区域/语言设置设置的区域设置格式的日期。例如,加拿大的操作系统设置的默认格式是“yyyy-mm-dd”,而在德国,它是“dd.mm.yy”。如何使日期响应?

我已经阅读了文档,但仍然无法弄清楚。

这是我尝试过的:

import xlsxwriter
from datetime import date

workbook = xlsxwriter.Workbook('sample.xlsx')
worksheet = workbook.add_worksheet()

my_date = date(2020, 1, 31)
my_format = workbook.add_format({'num_format': 'mm/dd/yyyy'})
worksheet.write(0, 0, my_date, my_format)

workbook.close()

  • 在设置为英语-加拿大的 Excel 中,我希望得到“2020-01-31”但得到“01-31-2020”
  • 在设置为德语的 Excel 中,我希望得到“31.01.20”但得到“01.31.2020”。

  • 所以它设法使用了正确的分隔符,但其余的都是错误的。

    提前致谢

    最佳答案

    第一个问题是是否可以在 Excel 中设置日期格式,该格式将按照您想要的方式更改以匹配区域设置。我不认为是。

    如果您在 Excel 中设置了任何“mm-dd-yyyy”样式格式,那么您将在其他语言环境中获得该格式(分隔符除外)。

    因此,如果在 Excel 中不可能,则在 XlsxWriter 中也不可能(同样,如果在 Excel 中可能,那么它在 XlsxWriter 中的工作方式相同)。

    一种部分解决方法是使用 in-built Excel number formats 之一在 XlsxWriter 中。这些是数字索引而不是字符串:

    import xlsxwriter
    from datetime import date

    workbook = xlsxwriter.Workbook('sample.xlsx')
    worksheet = workbook.add_worksheet()

    my_date = date(2020, 1, 31)
    my_format = workbook.add_format({'num_format': 14})
    worksheet.write(0, 0, my_date, my_format)

    workbook.close()


    这个日期(2020 年 12 月 31 日)给 20-12-31在加拿大地区和 31.12.20在德国语言环境中。但是,没有任何内置格式可以提供 4 位数的年份。

    另见 Number Format CategoriesNumber Formats in different locales在 XlsxWriter 文档中。

    关于Python Xlsxwriter - 使日期尊重不同的语言环境格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60083707/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com