将java Date转换为dbf FoxPro日期时间格式

时间:2014-08-26 12:49:36

标签: java jodatime foxpro dbf

我试图在FoxPro规范中创建DBF文件,但idk如何插入日期。我不知道如何将java Date转换为:

  

FoxPro的字段是2个32位整数:一个存储日期,另一个存储   存储时间,以反向字节顺序存储。日期整数存储   从1/1 / 4712BC起的天数。时间整数存储数字   从00:00:00开始的毫秒数。

使用JodaTime很容易获得日期和毫秒:

         DateTime start = new DateTime(-4713, 1, 1, 0, 0, 0, 0);
         DateTime end = new DateTime(2014, 1, 1, 0, 0, 0, 0);
         Days days = Days.daysBetween(start, end);
         long millis = end.getMillisOfDay();

但如何将此信息转换为所需格式? 输入我刚刚使用的日期:

SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyyMMdd");
simpledateformat.format(date);

它的工作正常,但是当我尝试将datetime与"yyyyMMddHHmmss"一起使用时,我看到非常糟糕的结果,如17.08.33409 12:34:20(只有月份是正确的)。

1 个答案:

答案 0 :(得分:0)

VFP具有Date和DateTime字段类型。

用于插入日期的VFP语法是:

Insert into mytable (mydatefield) values ({^YYYY-MM-DD})

Insert into mytable (mydatefield) values (Date(YYYY,MM,DD))

对于日期时间(假设VFP中的字段是日期时间)

Insert into mytable (mydatefield) values ({^YYYY-MM-DD HH:MM:SS})

Insert into mytable (mydatefield) values (DateTime(YYYY,MM,DD,HH,MM,SS)) 

因此,假设您可以从Java日期提取年,月,日的文本表示,则可以从中构建VFP查询。