1. We use the Simple Past for specific times in the past.
2. We use the Present Perfect for non-specific times in the past.
Something happened at some time between then and now:
I have eaten.
Something happened at a specific time in the past:
Time is inherent:
I ate. (Specific time need not be stated always because it can be deduced from the context)
The following conversation is taking place right now, at lunch time.
Pat: Did you eat yet?
Sam: Yup. I ate.
Pat asks, "Did you eat yet?", meaning "Did you eat lunch yet?" Lunch is eaten in the afternoon, so Sam deduces that 'Did you eat yet?' refers specifically to lunch time as opposed to dinner time or breakfast.
Specific time is inherent in Simple Past verbs so a speaker doesn't have to state it, unless, that is, it's necessary:
The following conversation takes place between two people who have been stranded on an island for two days without food.
Pat: Did you eat yet?
Sam: Yup. I ate yesterday afternoon before I knew you were stranded too. If I'd have known you were here, too, I would've saved some food for you. Sorry.
'yesterday afternoon' is a specific time. It's different from 'this morning'. If Sam would have said, "Yup. I ate this morning when you were out hunting for food", Pat would've probably eaten Sam
And, just because specific time is inherent in Simple Past verbs, doesn't mean that they cannot be modified by non-specific times, such as:
I ate some time ago. (ok)
Time as a modification:
I have eaten today. (at some unknown time today).
'today' is a specific day, but it is also made up of hours, making it span of time. When "You ate" within that span is unknown/undefinited and hence why 'today' is compatible with Present Perfect verbs.
Note, 'today' is a 'past time adverbial': it refers to that part of today which is over. 'today' is also compatible with both Simple Past and Present Perfect. The reasons being, it refers to (a) a specific day and (b) a non-specific time within the day.
One more thing. The Present Perfect is generally, if not always, used to take focus off the time frame and onto the the event itself. Notice that the Simple events go hand in hand with a , meaning one, specific time frame,
walks = event 'walk', time 'Present'
walked = event 'walk', time 'Past'
whereas Perfect verbs lack a specific time frame. They refer to two:
have walked: Present 'have' & Past 'walked'
had walked before I ran: Past (begining) 'had walked' & Past (end) 'ran'
Speakers use the Present Perfect to place heavy focus on an event. That may be the reason why the phrase 'time is unimportant' tends to be adopted in definitions for the Present Perfect.
Have you eaten lunch?
(I'm asking about the event. Time is not the focus/topic here)
Did you eat lunch?
(I'm asking about the event and the time. The event and the time go hand in hand).
- For Teachers