如何使用Hessian二进制远程处理协议将日期时间或某种时间戳从PHP发送到Java?

如何使用Hessian二进制远程处理协议将日期时间或某种时间戳从PHP发送到Java?,java,php,datetime,calendar,hessian,Java,Php,Datetime,Calendar,Hessian,我需要从PHP调用一个Java服务,该服务如下所示: getProductsForMode(java.util.Calendar date, int modeId) 我无法将PHP日期类映射到java.util.Calendar类。我尝试了两种不同的方法,但都无济于事: 方法#1(将DateTime对象包装到映射到Java的CalendarHandle的CalendarHandle中): 错误: [06-Jul-2011 11:16:52]PHP致命 错误:未捕获异常“HttpError” 带

我需要从PHP调用一个Java服务,该服务如下所示:

getProductsForMode(java.util.Calendar date, int modeId)
我无法将PHP日期类映射到java.util.Calendar类。我尝试了两种不同的方法,但都无济于事:

方法#1(将DateTime对象包装到映射到Java的CalendarHandle的CalendarHandle中):

错误:

[06-Jul-2011 11:16:52]PHP致命 错误:未捕获异常“HttpError” 带有消息“HttpError:格式不正确” 中的HTTP头 /Users/jordanb/Sites/proposal framework/trunk/plugins/srHessianClientPlugin/hessianppp/Http.php:265

方法2: 将DateTime映射到java.util.Calendar

$this->hessianClient = new HessianClient(_HESSIAN_ENDPOINT, $hessianOptions);
$config = &HessianConfig::globalConfig();
$config->typeMap->mapRemoteType('java.util.Calendar', 'DateTime');

$time = new DateTime($dateEvaluated);
$products = $this->hessianClient->getProductsForMode($time, 1234);
错误:

[06-Jul-2011 11:28:50]PHP致命错误:未捕获异常“HessianError”,在/Users/jordanb/Sites/proposal framework/trunk/plugins/srHessianClientPlugin/hessianppp/Protocol.PHP:350中显示消息“Hessian Parser,错误回复:预期r”


有没有人使用Hessian成功地将日期时间或某种时间戳从PHP发送到Java?提前谢谢

只使用php time()函数(返回一个int并将其作为long发送给Java)是否可行?在Java中,您可以将long传递给新的日期(long Date)。

使用unix时间戳。这是最好的选择

PHP:

$ts = time();
long ts = getTimeFromPhp();
Date dt = new Date(ts); 
以某种方式将
$ts
传递给java

Java:

$ts = time();
long ts = getTimeFromPhp();
Date dt = new Date(ts); 
或者您可以使用日历:

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ts);

虽然不理想,但这可能是最好的解决方案。谢谢