To understand this, first look at the sentence
"I have been skating for three years".
That means I have skated (maybe a lot or maybe just a very little) during the last three years. Technically, the sentence does not rule out the possibility that I have been skating for five years, though most people will interpret it as saying that I have been skating for PRECISELY three years. The language is not as precise as you might want it to be. That's one reason we have conversations. People have to ask each other questions constantly in order to figure out what they are trying to say.
Unfortunately, the sentence
"I have not been skating for three years"
also has many possible interpretations. GuideDog's interpretation is certainly valid and is likely the most common one. But if I examine the sentence as a logician, I would see that it also has numerous possibilities. Of course it does! It is the negation of a statement that has more than one possible interpretation, so it too must have more than one possible interpretation. One possibility would be that I have been skating for only, say, two years. Another possibility would be that I have not been skating for five years. The possibilities for misunderstanding are endless! If you want true precision, you would have to talk with mathematical symbols.