Datetime 转换贝宝的最短方式';在ColdFusion CF9中,s首选日期格式而不是MySQL日期时间格式

Datetime 转换贝宝的最短方式';在ColdFusion CF9中,s首选日期格式而不是MySQL日期时间格式,datetime,coldfusion,Datetime,Coldfusion,PayPal的IPN以这种格式提供日期,该格式不是有效的公认格式。此外,还指定了时区;我找不到可以占用时区的ColdFusion日期类。那么,转换格式并将时区转换为GMT(我的服务器的时区)的最短方法是什么呢。到目前为止我有这个 arr3LA = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dev']; arrDateParts = ListToArray( FORM.payment_date, ' '

PayPal的IPN以这种格式提供日期,该格式不是有效的公认格式。此外,还指定了时区;我找不到可以占用时区的ColdFusion日期类。那么,转换格式并将时区转换为GMT(我的服务器的时区)的最短方法是什么呢。到目前为止我有这个

arr3LA = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dev'];

arrDateParts = ListToArray( FORM.payment_date, ' ');
arrTimeParts = ListToArray( arrDateParts[1], ':' );

arrDateParts[3] = Replace(arrDateParts[3], ',', '', 'All');

objPayPalDateTime = CreateDateTime( arrDateParts[4], ArrayFind( arr3LA, arrDateParts[2]), arrDateParts[3], arrTimeParts[1], arrTimeParts[2], arrTimeParts[3] );

strLSFriendly = DateFormat( objPayPalDateTime, 'mmmm dd, yyyy' ) & ' ' & TimeFormat( objPayPalDateTime, 'h:mm:ss tt' ) & ' ' & arrDateParts[5];

objDateTime = LSParseDateTime( strLSFriendly );

strSQLFriendlyDateTime =  DateFormat( objDateTime, 'yyyy-mm-dd hh:mm:ss' );

你能改进一下吗

我想说,忘记在这里使用本机CFML,利用java:

target = "06:52:15 Apr 12, 2014 PDT";
sdf = createObject("java", "java.text.SimpleDateFormat").init("hh:mm:ss MMM dd, yyyy zzz");
result =  sdf.parse(target);    
writeDump([{target=target},{result=result}]);
这样做有用吗


(注:受此问题启发:)

太棒了!谢谢我还插入了一个正则表达式检查
if(ReFind('^[0-9]{2}:[0-9]{2}:[0-9]{2}[a-Za-z]{3}[0-9]{4}[a-z]{3}$',FORM.payment}:[0-9]{2}:[0-9]{2}[0-9]{4}[a-z]{3}$',FORM payment.payment{code>只是为了避免解析时出错。好主意。[空格填充符]