Delphi与Java中的日期互换
在最近做的一个项目中用到了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;
参考:http://blog.csdn.net/chris_mao/article/details/1921864
Delphi与Java中的日期互换的更多相关文章
- Java中的日期操作
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- 填坑:Java 中的日期转换
我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...
- 第七节:详细讲解Java中的日期,java.util.date
前言 大家好,给大家带来详细讲解Java中的日期,java.util.date的概述,希望你们喜欢 类Date Java.lang.Object->java.util.Date public c ...
- Java中的日期和时间
Java中的日期和时间 Java在java.util包中提供了Date类,这个类封装了当前的日期和时间. Date类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date() 下面的构 ...
- Java中的日期操作 分类: B1_JAVA 2015-02-16 17:55 6014人阅读 评论(0) 收藏
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- Java中的日期表示类
一.概述 Java中的日期类设计的比较失败,刚开始使用Date来计算时间,后来大部分Date类的方法都过时了:想用Calendar类代替Date类,然而Calendar类也是不尽如人意.下面简单介绍下 ...
- java中获取日期和时间的方法总结
1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下: 要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...
- Java中的日期处理类
在Java中可以使用Date类和Calendar类来处理日期 但是Date类很多方法都过时了,推荐使用Canlendar类来处理日期,并对日期的格式化做了介绍.下面的部分将会逐一介绍 Date类 Ja ...
- java中的日期处理
学习Java日期处理,看见这一篇比较详细,转载之. 转自:http://www.cnblogs.com/hqr9313/archive/2012/04/19/2458221.html 时间日期1) ...
随机推荐
- Windows 7系统下局域网文件共享设置方法
今天给家里增添了一台组装机,小试了一下win7局域网文件共享功能,很爽的说. 记录一下实现方法: 1.关闭防火墙 2.启用共享. 控制面板 – 网络和共享中心 – 更改高级共享设置,将图中的几个选项选 ...
- C#泛型的性能优势
我写东西一向追求短小精悍,就不放代码去验证的,只说结论,并会与Java泛型做对比.有不对之处还望指出. 泛型作为一个在C#2.0中就引入的特性,也是C#的重要特性之一,我经常看到有人讨论泛型带来的便捷 ...
- CentOS 6.7安装Java JDK
1.下载Java JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...
- JPA entity versioning (@Version and Optimistic Locking)
详情见: http://www.byteslounge.com/tutorials/jpa-entity-versioning-version-and-optimistic-locking
- Java线性表的排序
Java线性表的排序 ——@梁WP 前言:刚才在弄JDBC的时候,忽然觉得order-by用太多了没新鲜感,我的第六感告诉我java有对线性表排序的封装,然后在eclipse里随便按了一下“.” ,哈 ...
- webservice未能加载文件或程序集“**.DLL”或它的某一个依赖项。
方法1.C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files先删除这个下面所有的文件,然后把bin里面的引用的dl ...
- window 安装 Protobuf
环境安装 1:下载CMake 2:打开VS Command Prompt 3:修改工作目录到目标目录 cd C:\Path\to 4:创建编译完后 protobuf headers/libraries ...
- SOCKET,TCP/UDP,HTTP,FTP
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
- 使用ASP在IIS创建WEB站点的函数
程序代码: '=========================================================='函数介绍:创建WebSite'本函数使用ADSI,需要Adminis ...
- ubuntu 13.04 xrdp 远程桌面连接问题[转载]
本人ubuntu12.04,遇到了同样的问题,用一下方法解决了,mark一下. ubuntu 13.04 xrdp 远程桌面连接问题. win 7 远程桌面连接 ubuntu desktop 有几种办 ...