In addition to cnst answer, having a file modification time in the future is something that can happen when a file is stored on a remote file server share through NFS or CIFS and the client and server clocks are not synchronized through NTP or one of them has the correct time but the wrong time zone.
Note also that this ls behavior is BSD / OS X specific and is breaking the POSIX standard. Most if not all other Unix
ls implementations display the year instead of the time if the file modification time is, even slightly, in the future.
The BSD / OS X
ls manual page which states
If the modification time of the file is more than 6 months in the past or future
would be less ambiguous if rephrased:
If the modification time of the file is more than 6 months in the past or is in the future