Description: dBASE Level 7 DBF supports the timestamp field (type '@'). Valid DBF files generated from dBASE are flagged as corrupt and LibreOffice fails to repair them Steps to Reproduce: 1. Download sample file https://github.com/SheetJS/test_files/raw/master/dbf/d11.dbf 2. open in LibreOffice Actual Results: Error message "The file 'd11.dbf' is corrupt and therefore cannot be opened. LibreOffice can try to repair the file." Attempting to repair the file yields a new error message "The file 'd11.dbf' could not be repaired and therefore cannot be opened." Expected Results: The file opens properly and the field is interpreted as Date Reproducible: Always User Profile Reset: Yes Additional Info: SheetJS currently uses the following algorithm to extract values. The algorithm agrees with dBASE 2019 on the values in the test file: - Parse the 8 bytes of the field as an IEEE754 double in big-endian order - Subtract 0x388317533400 (62135683200000, a number that can be exactly represented in a IEEE754 double) - Interpret the code as milliseconds since January 1 1970 (which is what JS uses as the 0 value for the native Date object)
*** Bug 143716 has been marked as a duplicate of this bug. ***
repro Version: 7.3.0.0.alpha0+ / LibreOffice Community Build ID: 36efb384a66b6dd645e0ae80fd7df68370a9dc8b CPU threads: 4; OS: Linux 5.11; UI render: default; VCL: gtk3 Locale: cs-CZ (cs_CZ.UTF-8); UI: en-US Calc: threaded
I seem to recall that our DBF filter only supports a much older level of DBF (III/IV ?) I'm not aware of any major work within the LO project that might have gone into bringing this filter up to date.