我试图在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);


及其工作正常,但是当我尝试在"yyyyMMddHHmmss"中使用datetime时,我看到非常糟糕的结果,例如17.08.33409 12:34:20(仅月份正确)。

最佳答案

VFP具有日期和日期时间字段类型。

用于插入日期的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查询。

10-06 15:33