There are a few things that may be confusing about this sentence...
Present perfect: the uses of this tense are different in Italian and English. "They have known it (for a long time)" is a less specific time frame than in Italian "L'hanno saputo (da molto tempo/molto tempo fa)". A simple way to explain this is that in Italian, the present perfect is used with specific time phrases such as yesterday or last month. In English, this is never the case, because the present perfect is used to describe experiences, incomplete actions, etc.
Sapere: in simple past or present perfect this verb generally means something more along the lines of found out
Fa: ago, but
Da: since which means of the two Italian sentences mentioned in the first point, "da molto tempo" is closer in meaning to "for a long time".
The short answer is that the meat of "They have known it for a long time" is quite similar to "They found out a long time ago" but the sentence is not syntactically the same.
I think the primary use of the present perfect tense in English is to indicate action completed in present time, i.e., recently. For example, the question "Have you seen the movie?" indicates it may still be showing as opposed to past tense, "Did you see the movie?" The sentence DL uses is not good English. "They found out a long time ago" would be preferable.
The uses of the imperfect tense are. a) used to express an ongoing action in the past b) used to express a habitual action in the past. c) Used to express an action that started in the past and was still going on when something else happened. d) used to express a state or condition in the past. e) used in indirect discourse to report what someone said or wrote. f) uses the imperfect tense of 'stare' plus gerund to express the equivalent of the past progressive.
Item d) above would fit your reasoning, but it usually requires 'was' viz: La donna era giovane. My problem with this sentence is that the verb sapere is - To know., to know how, to be able to, to be aware of. nowhere is it to find out. Of course I understand there are nuances in all language,. but this translation for me just does not suit the case.
My only problem with the correct solution still reamins: when learning (teaching) present perfect I was told (I used to say) that 'ago' is banned from present perfect sentences. Was I misled? I guess the undelying problem is that Italian passato prossimo has different usage than English present perfect. (At least in Lombardy where Passato Remoto is hardly ever used in spoken Italian.)
You've got the conjugation right, but the reason him doesn't work is only because of "sapere". Figuring out when to use one or the other can be tricky ;) Knowing a person takes "conoscere". But if you wanted to say they knew him a long time ago, it would be either "L'hanno conosciuto molto tempo fa" or even "Lo conoscevano molto tempo fa".
"knew it" would need the imperfect tense
there is a certain group of verbs, including : sapere, conoscere, volere, dovere and potere, which have a slight difference in meaning depending on which past tense you use.
In the case of sapere, the imperfect tense would be used to say "they knew it", and it would just be describing the state of knowing which no reference to when they first knew it.
when you you the passato prossimo, it indicates that there was a point in time when they found this out or "learned" it. The example might be more clear if it said : L'hanno saputo ieri. (They found out about it yesterday), ieri being a clear point in time when they found out.
You will find that these same verbs behave in a similar way in French.
I hope this helps.
There seems to be a lot of confusion here about the meaning of sapere in the perfect tense.
This is what a first-year Italian textbook has to say :
"When used in the passato prossimo, sapere means to find out, to learn, to hear about.
When used in the imperfetto, sapere means to know. "
'For a long time' is the correct translation. 'Ago' cannot be used with the present perfect as it refers to a closed period of time. The present perfect can only be used to talk about open time periods. It seems that in this case DL insists on a word for word translation without taking English grammar into account.
I said, They have known it for a long time. It was rejected. I'm trying to connect that with mukkapazza's contribution, which was very helpful. So here the English is not specific, as would be in the Italian. I think I get it. They found out works better then. Thanks, btw, for this explanation.
Hi Val, You will encounter the same situation in french with similar verbs, like sapere (savoir), conoscere (connaître), potere (pouvoir), volere (vouloir) where the use of the passato prossimo changes the meaning slightly. Here is one explanation :
Generally, use of the passato prossimo with these verbs refers to a point in time rather than a length of time. The imperfect past would be used to talk about knowledge that you had for some period of time, while the use of the passato prossimo refers to the moment in time when you acquired that knowledge.