在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了。
通过查阅资料,发现两者对日期类型的定义略有不同。Java中日期使用的是长整型进行存储的,它表示距“1970-1-1”的毫秒数。如 “1970-1-2”是在“1970-1-1”后的86400000毫秒,所以Java中就使用86400000表示“1970-1-2”这个日期。由于长整型是带符号的,所以我们可以使用负的毫秒数来表示在“1970-1-1”之前的日期。而Delphi中的日期则是使用双精度类型进行存储的,整数部分表示距“1899-12-30”的天数,小数部分表示小时。如“2.75”这个数值则表示“1900-1-1 6:00PM”,“-1.25”则表示“1899-12-29 6:00 AM”。
由于两者的日期类型的起始日期不一样,即相同的“0”值在两者中表示不同的日期。那么在Java与Delphi之间进行日期值的通信时就需要进行一个转换。
//将Java中的日期转换为Delphi中的日期
function ConvertJavaDateTimeToDelphiDateTime(Value: Int64): TDateTime;
begin
Result := IncMilliSecond(StrToDate(''1970-1-1''), Value);
end;
//将Delphi中的日期转换为Java中的日期
function ConvertDelphiDateTimeToJavaDateTime(ADateTime: TDateTime): Extended;
begin
Result := MilliSecondSpan(ADateTime, StrToDate(''1970-1-1''))
end;
分享到:
相关推荐
Delphi调用Java类源代码,本人测试一切OK的,大家可以参考一下。
DELPHI 7 调用 JAVA 接口 ,传入 JAVA接口地址,和参数 返回结果
通过测试,Delphi的RSA算法无法与Java的RSA算法兼容,经过各种周折最终尝试了Delphi调用Java的类的方法进行RSA加密解密;这是非常令人振奋的解决方案,但是前期也遇到不少问题。 在网上找到...
delphi调用Java函数示例 delphi调用Java函数示例 delphi调用Java函数示例 delphi调用Java函数示例
在Delphi中运行java的sdk
本组代码采用标准AES算法(基础算法引用ElAES.pas,感谢作者),代码支持AES/ECB/PKCS5Padding、AES/CBC/PKCS5Padding 密钥长度128/192/256bit,密钥0填充,Delphi与JAVA互相加解密。
解决Delphi 中文MD5签名和Java MD5签名不一致的问题。
测试通过的delphi与java实现aes算法对文件进行加密和解密操作的代码,delphi端是delphi xe3,java端是oracle jdk 1.8版本,在win32和win64模式下编译测试均通过没有问题。 注意:这个示例只调整了128位aes stream方式...
java与delphi的完美结合 对java和delphi有兴趣的同学可以参考
delphi调用java类,包.rar
delphi调用java类,转换包jni.pas J2SDK v 1.4 DELPHI开发JNI必备 jni.pas
最近的项目(Delphi开发),需要经常和java语言开发的系统进行数据交互(Socket通信方式),数据编码约定采用UTF-8编码。 令我无语的是:JAVA系统那边反映说,Delphi发的数据他们收到是乱码,而我这边(Delphi7,...
现在很多都是提供jar包,使用Delphi的同学们习惯于调用dll,附件就是一个通过DELPHI XE7调用JAVA的JAR的例子
Delphi ,Java,php等通用 RSA加密,解密,签名.
Delphi与Java互通AES加解密互通算法,适应delphi所有版本,最高到10.3版本。AES所有参数算法模式、补码、结果编码完整。你值得拥有!
Delphi 获取MonthCalendar中选择的日期,其实就是完成一个时间、日期的选择功能,年份、月份、日期、时间都可自定义调整并选择,这个简单的例子,可演示Delphi中MonthCalendar的用法,生成一个日期时间选择器功能。...
简便方法搞定第三方SDK的Jar包 在DELPHI XE 环境下的引入,生成原生桥接文件(NativeBridge File) 所谓“原生桥接文件”,即JAR文件的定义文件,说明了存在JAR库文件里的类、类型、函数等,相当于Windows系统下...
分别使用Delphi和Java实现AES的加解密,并且Delphi和Java也能互为加解密,支持中英文,字母,数字等等所有字符。
Delphi实现AES加密和解密, 同Java加解密兼容
上次忘记发源代码了,补上。 java与delphi通用DES加解密(源代码)