From info ls
the default POSIX locale uses a date like `Mar 30 2002' for non-recent timestamps, and a date-without-year and time like `Mar 30 23:45' for recent timestamps. A timestamp is considered to be "recent" if it is less than six months old, and is not dated in the future.
You can change this behaviour by means of the --time-style option, that lets you specify a format like that one of the date
command. There is also a --full-time option which is a shortcut for --time-style=full-iso.
If you want to change the default behaviour, you have to set the environment variable TIME_STYLE. For example according to your requirement:
export TIME_STYLE=+"%b %d %Y"
At this point, ls -l
displays the timestamp in the desired format. Hope this helps.