I have included this link to a similar question that I answered. It is a rather extensive and thorough answer.
How to tell how old a page is?
In the case of a download that is a binary file, various parsers exits to read many of these files, however, there may not always be a good clue for Google to assess a date. It may be that in some cases, the date is taken from the linking page- just a guess.
There are some things you can do to try and manipulate the date depending upon what it is. Google makes it no secret that it looks for dates in documents such as PDFs, Word, Excell, etc. There is a suggestion about adding a date to the first page of your document. As well, for HTML pages, adding a date just under the first H1 tag seems to help. In addition you can use mark-up. However, I warn you that not all of Googles code is completed and it may not recognize and use the markup yet depending upon the situation. I assume you can use markup around the links to indicate a date. In time I expect that will work if it does not today.
Please let me know if this is enough to answer your question. I an always try and add more.