2024-06-02 05:34:41 发布
网友
我在python中解析日期时遇到了一个小问题
这是我要分析的日期:
这就是我用来解析它的代码:
除了时区解析之外,一切正常,它总是返回ValueError异常。我也试过派兹,但没有成功。在
那么如何使用python解析这种日期呢?在
你不能。反正也不可靠。时区缩写是模棱两可和相互矛盾的。没有标准。在
例如,“CST”有5个明显不同的含义。在
有关其他示例,请参见this list。在
使用^{}:
import dateutil.parser import pytz tz_str = '''-12 Y -11 X NUT SST -10 W CKT HAST HST TAHT TKT -9 V AKST GAMT GIT HADT HNY -8 U AKDT CIST HAY HNP PST PT -7 T HAP HNR MST PDT -6 S CST EAST GALT HAR HNC MDT -5 R CDT COT EASST ECT EST ET HAC HNE PET -4 Q AST BOT CLT COST EDT FKT GYT HAE HNA PYT -3 P ADT ART BRT CLST FKST GFT HAA PMST PYST SRT UYT WGT -2 O BRST FNT PMDT UYST WGST -1 N AZOT CVT EGT 0 Z EGST GMT UTC WET WT 1 A CET DFT WAT WEDT WEST 2 B CAT CEDT CEST EET SAST WAST 3 C EAT EEDT EEST IDT MSK 4 D AMT AZT GET GST KUYT MSD MUT RET SAMT SCT 5 E AMST AQTT AZST HMT MAWT MVT PKT TFT TJT TMT UZT YEKT 6 F ALMT BIOT BTT IOT KGT NOVT OMST YEKST 7 G CXT DAVT HOVT ICT KRAT NOVST OMSST THA WIB 8 H ACT AWST BDT BNT CAST HKT IRKT KRAST MYT PHT SGT ULAT WITA WST 9 I AWDT IRKST JST KST PWT TLT WDT WIT YAKT 10 K AEST ChST PGT VLAT YAKST YAPT 11 L AEDT LHDT MAGT NCT PONT SBT VLAST VUT 12 M ANAST ANAT FJT GILT MAGST MHT NZST PETST PETT TVT WFT 13 FJST NZDT 11.5 NFT 10.5 ACDT LHST 9.5 ACST 6.5 CCT MMT 5.75 NPT 5.5 SLT 4.5 AFT IRDT 3.5 IRST -2.5 HAT NDT -3.5 HNT NST NT -4.5 HLV VET -9.5 MART MIT''' tzd = {} for tz_descr in map(str.split, tz_str.split('\n')): tz_offset = int(float(tz_descr[0]) * 3600) for tz_code in tz_descr[1:]: tzd[tz_code] = tz_offset date = 'Sun Sep 15, 2013 12:10pm EDT' dateutil.parser.parse(date, tzinfos=tzd) # => datetime.datetime(2013, 9, 15, 12, 10, tzinfo=tzoffset(u'EDT', -14400))
tzd生成代码来自this answer。在
tzd
更新
注意时区缩写列表并非如Matt Johnson所评论的那样准确。见his answer。在
你不能。反正也不可靠。时区缩写是模棱两可和相互矛盾的。没有标准。在
例如,“CST”有5个明显不同的含义。在
有关其他示例,请参见this list。在
使用^{} :
tzd
生成代码来自this answer。在更新
注意时区缩写列表并非如Matt Johnson所评论的那样准确。见his answer。在
相关问题 更多 >
编程相关推荐