datetime - 在 ColdFusion CF9 中将 PayPal 的首选日期格式转换为 MySQL 日期时间格式的最短方法

标签 datetime coldfusion

PayPal 的 IPN 以这种格式给出日期 06:52:15 Apr 12, 2014 PDT 这不是有效的识别格式。此外,还指定了时区;我找不到可以使用时区的 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}]);

这样做有用吗?

(注意:受到这个问题的启发:How to parse date string to Date?)

关于datetime - 在 ColdFusion CF9 中将 PayPal 的首选日期格式转换为 MySQL 日期时间格式的最短方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23102416/

相关文章:

javascript - 如何将 localStorage 数据通过电子邮件发送给客户端

coldfusion - 理解 cflush 的行为

web-services - 使用 ColdFusion 创建安全的 Web 服务

java - 使用 Coldfusion 创建二维码

c# - 强制 DateTime 变量仅显示日期而不转换 ToString()

Java - 多种场景的日期格式

mysql - 在 laravel 5.0 中使用 FLUENT 的 datetime 列的日期值

javascript - Colorbox 仅在 IE8 中不加载变量 URL

mysql - 如何将此日期/时间值插入到日期时间字段中

datetime - ServiceStack DateTime 本地不是 UTC