delphi java 日期 转换

Posted lypzxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi java 日期 转换相关的知识,希望对你有一定的参考价值。

获取Unix时间戳

http://www.cnblogs.com/findumars/p/4716753.html

最简单准确一句话

 Result:=IntToStr(  DateTimeToUnix(now())-28800);

 

系统自带的函数

{ Unix date conversion support }

function DateTimeToUnix(const AValue: TDateTime; AInputIsUTC: Boolean = True): Int64;
function UnixToDateTime(const AValue: Int64; AReturnUTC: Boolean = True): TDateTime;

 

还有函数UnixToDateTime,在文件system.DateUtils

c++builder

// 将Java中的日期转换为Delphi中的日期
TDateTime ConvertJavaDateTimeToDelphiDateTime(__int64 Value)
{
    return IncMilliSecond(StrToDate("1970-1-1"), Value);
}

// 将Delphi中的日期转换为Java中的日期
double ConvertDelphiDateTimeToJavaDateTime(TDateTime ADateTime)
{
    return MilliSecondSpan(ADateTime, StrToDate("1970-1-1"));
}

 

1483927576698

    // pc端接收到的数据00 00 01 59 80 f9 e0 7a
    // 2017-01-09 02:06:16
    byte bta[8] = { 0x7a,0xe0,0xf9,0x80,0x59,0x01,0x00,0x00    };
    // byte bta[8] = {  0x00,0x00,0x01,0x59,0x80,0xf9,0xe0,0x7a    };
    double da = *(__int64*)&bta[0];
    TDateTime dtad;
    dtad = ConvertJavaDateTimeToDelphiDateTime(da);

 

    TDateTime dt1;
    dt1 = StrToDateTime("2017-01-09 02:06:16");
    double jv1;
    jv1 = ConvertDelphiDateTimeToJavaDateTime(dt1);
    byte bt1[8];
    memcpy(&bt1[0], (byte*)&jv1, 8);

    //check

    TDateTime dtad1;
     dtad1  = ConvertJavaDateTimeToDelphiDateTime(jv1);

   //2017-01-10 18:13:24

0x38,0xAD,0x95,0x89,0x59,0x01,0x00,0x00

   __int64 jv=1484072004920;
       TDateTime dtad;
    dtad = ConvertJavaDateTimeToDelphiDateTime(jv);
    this->Caption =dtad.DateTimeString();

var
  aint: int64;
  bs: array [0 .. 7] of byte;
  pb: PByteArray;
begin
  aint := 1484072004920;
  pb := @aint;
  Move(aint, bs[0], 8);

int64= Trunc(double val);

 

以上是关于delphi java 日期 转换的主要内容,如果未能解决你的问题,请参考以下文章

java字符串格式转换成日期格式

将文本转换为浮点数/整数/日期时,Delphi 消息“您已插入无效值”

关于在delphi中时间日期的转换问题,高手进

delphi 格式转换

Delphi数据类型转换

Delphi获取与设置系统时间格式,即GetLocaleInfo和SetLocaleInfo