Did some checking up.
It would appear that "forbidding" the use of the Present Perfect with "past time expressions" is NOT the case, with "past time expressions" generalized wrongly and thus misunderstood.

1. We use the Simple Past for specific times in the past.
(a) I saw Simon yesterday.
(b) I ate lunch in the afternoon.
(c) I visited Dalian in July.

2. We use the Present Perfect where the exact time in the past is unimportant, not known, or cannot be recalled, but NOT with a specific past time.
(a) I have seen Simon before. (OK)
I have seen Simon yesterday. (Not OK)
(b) Have you eaten lunch? I have eaten already. (OK)
I have eaten lunch in the afternoon. (Not OK)
I have eaten lunch at three. (Not OK)
(c) I have visited Dalian several times since I first arrived. (OK)
I have visited Dalian in July. (Not OK)

That's what I understand to be the case. Any views?