I like the accepted answer, but I find it raises questions that I can't quite answer. The standard analysis of temporal adjuncts and the present perfect examines whether the specified time contradicts the present perfect's implied meaning of completed action affecting the present moment. For instance, the following is proper:
[1] Recently I have developed a habit of eating two-pound steaks.
"Recently" is compatible with the present perfect here because the adverb encompasses the time from some unspecified short while ago right up to the present moment.
This mechanism also explains why the accepted answer's example
[2]* Last week I have eaten a two-pound steak
is incorrect. The sentence excludes contemplation of the consumption of a large steak during the last few days nearest to the present moment. But that can't be why
[3a]* I have once eaten a two-pound steak.
is incorrect (and I agree it doesn't sound idiomatic). The meaning of once as "formerly, at some time or times in the indeterminate past" doesn't conflict with the consumption of the two-pound steak in the last few moments. I suspect that the meaning intended here isn't "formerly," but the one of "a past, unique occurrence." Consider the following, which is surely acceptable:
[3b] I have eaten a two-pound steak, but just the once.
If "[t]he other meaning [of once], 'one time and no more' can be used in the ... present perfect tense," the why is 3b acceptable but 3a isn't?
Moreover, consider the following from an article in the periodical (ironically named) Once a Week talking about the ruins of the ancient city of Ephesus:
Yet still is pointed out the quay, the walls conjectured to have belonged to the Custom House, and even the remains of a huge stone staple to which ships may have once been fastened.
"Once" here surely means formerly, and although the citation appeared in 1873, I don't think there's any modern objection to it.