I'd like to compare the present perfect usage with the simple past one.
First, the simple past.
- How long ago did you see her?
- When did you see her the last time?
- When was the last time you saw her?
All three sentences are asking the same thing, the speaker would like to know when did the two people last see each other. Specifically, he's asking for a point in time.
The respondent could reply like this:
- I saw her twenty years ago.
- The last time I saw her was twenty years ago.
- I last saw her in 1993.
The act of seeing the woman is a finished event, completed at a specific time. That episode cannot be repeated and we know exactly when this event occurred. This tense is usually referred to as the simple past.
- How long has it been since you last saw her?
- How many years have you not seen her?
- How long have you not seen each other?
The speaker wants to know how much time has elapsed since their last meeting. In other words, the act of not seeing each other. The action of not seeing somebody is a continuous one, it began in the past and continues to the present. The two people have not seen each other since 1993 or if you prefer, for twenty years.
Therefore, the present perfect tense is the most acceptable one in this type of situation, and the most recommended (without any contractions) for formal writing.
- It has been twenty years since I last saw her.
- I have not (haven't) seen her since 1993.
- I haven't seen her for twenty years.
In spoken English; however, it is common to use this type of construction
it is + period + since + past or perfect tense.
- It is twenty years since I (last) saw her or
- It is twenty years since I have seen her.
The meaning is the same as the present perfect sentences above.