Why does "ls -l" display the year of my (jar) file as "16:18"?

From man ls (The Long Format):

If the modification time of the file is more than 6 months in the past or future, then the year of the last modification is displayed in place of the hour and minute fields.

Or in other words: It works as designed.