Exact Datevec Second Data

This function bypasses the problem with rounded date values, caused by the floating point representa

You are now following this Submission

This function bypasses the problem with rounded date values, caused by the floating point representation of the datetime.

If you do datevec(datenum([ 0 0 0 0 1 0 ])) in Matlab it returns [ 0 0 0 0 0 59.999999999999993 ], which can be annoying when, for example, adding a datenum value for 1 minute to a datenum value for 12:23:00 resulting in 12:23:59.999... Now even rounding doesn't help you as it returns 12:23:60 instead of 12:24:00.

If you use this function: exactDatevecSecondData(datenum([ 0 0 0 0 1 0 ])) it returns [ 0 0 0 0 1 0 ], making it the solution to the previous example as it returns 12:24:00.

NOTICE: This function fails if you are working with higher precision then seconds (e.g. milliseconds)

Cite As

Patrick Flick (2026). Exact Datevec Second Data (https://www.mathworks.com/matlabcentral/fileexchange/21260-exact-datevec-second-data), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0.0