gpt4 book ai didi

parsing - 使用 TimeZone 格式化字符串日期

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

我对 Groovy 还很陌生(但已经很喜欢它了)。我对编码并不陌生,但到目前为止还没有太多经验。

我在做什么?
我正在从 excel 文件中提取某些信息以从中创建 XML (SOAP) 消息并将其转发到 Web 服务。到目前为止一切正常 除了日期转换 .

我将字符串日期保存到 var

odate = 'Wed Oct 31 00:00:00 CET 2012' 

我需要将此日期重新格式化为类似

"10/31/2012 10:09:00" (MM/dd/yyyy HH:mm:ss)



我试图将日期解析为 mentioned in another question但我得到的只是一个异常(exception)。
String odate = 'Wed Oct 31 00:00:00 CET 2012'
def parsedodate = new Date().parse('E MMM dd H:m:s z yyyy', odate)

println parsedodate.format('MM/dd/yyyy h:m:s')

Exception thrown 31.10.2012 10:18:25 org.codehaus.groovy.runtime.StackTraceUtils sanitize

WARNUNG: Sanitizing stacktrace:

java.text.ParseException: Unparseable date: "Wed Oct 31 00:00:00 CET 2012"



现在,经过一些阅读和几轮反复试验后,我发现 parse 方法似乎只能解释德国日期。手动将字符串日期更改为德语格式(这是我所在的位置)后,以下内容有效。
String odate = 'Mi Okt 31 00:00:00 2012' //Mi = Wednesday, Okt = October, removed timezone
def parsedodate = new Date().parse('E MMM dd H:m:s yyyy', odate) // removed the z
println parsedodate .format('MM/dd/yyyy h:m:s')

但是,我需要解析器接受英文日期格式。
我该怎么办(错)?

最佳答案

您的问题的整体常规解决方案是:

import java.text.SimpleDateFormat
odate="Wed Oct 31 00:00:00 CET 2012"

englishPattern="E MMM dd H:m:s z yyyy"

SimpleDateFormat englishDateFormat = new SimpleDateFormat( englishPattern , Locale.ENGLISH);
//SimpleDateFormat germanDateFormat = new SimpleDateFormat( germanPattern , Locale.GERMAN);

Date englishDate = englishDateFormat.parse( odate );
//Date germanDate = germanDateFormat.parse( odate );

String englishOutput = englishDate .format( englishPattern );
//String germanOutput = germanDate .format( germanPattern );

englishDate.format("MM/dd/yyyy hh:mm:ss")

关于parsing - 使用 TimeZone 格式化字符串日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155166/

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