Do you prefer seeing a post marked 'Friday', '2 days ago' or '3/12/2009'?
I find myself translating a lot because I need to compare two dates. And if the date I need to compare with is expressed as '3/11/2009', then the 3rd format above is easiest to compare. The other two formats require a bit of transformation (in my head) to make that comparison possible.
We are all accustomed to seeing dates and times in our emails and other digital lists that give us an idea of how old each item is. But in recent years, we have been seeing these indicators expressed as 'yesterday' and '7 minutes ago'. This is kind of cool. It seems to raise the apparent intelligence of the machine. And in some cases it really fits better - especially if the comparison that needs to be made is to 'now'. By translating into how old the event is, we get the comparison to now without having to do any math in our head. This is a great reason to display the information this way.
But a far more egregious problem than making me do date math in my head is presenting flat out wrong information. If you display the text '3 minutes ago' on a page that is statically rendered and the user glances back at the page 3 hours later and still sees the text '3 minutes ago' displayed, it's just flat out wrong. As a programmer you didn't intend it to be wrong. But because you do not constantly update the page, the message is wrong a minute after you display it.
Twitter's home page and Facebook are the biggest offenders of this principle (presently). I may not have a chance to look at my twitter page for a couple of hours. And when I come back to it, I can never figure out how long ago I updated the page and how far back to go to see all of the updates. This is an example where displaying the actual date and time would be far better. The date/time of the post is a static piece of information. It doesn't change so displaying it (rather than an expression relative to now) in static page content is a great choice. I may have to do the math to figure out how long since I looked at the page. But at least I can figure it out and know how far down on the refreshed page I will need to read to catch up!
Interestingly , Ebay solves this problem in a different way with a 'time left' display that updates itself every second - so you're never looking at stale data - plus you don't have to do the math to figure out how much time is left (comparing 'now' to an auction end date).
So if you find yourself trying to decide how to display date/time information for an item, consider these (sometimes opposing) design elements: First choose the format that makes the most sense for the user of the system. If the logical choice is something relative to now, make sure that the value updates as 'now' moves. If that is not possible because of the platform, consider ways of helping the user - either with a clue that the data is stale (date/time stamp on the page) or by simply going back to an actual time display format.
Bottom line: You don't want to show '7 minutes ago' just because it's trendier than '12:37 pm'.