Selecting based on N years of X is a poor technique anyway. Someone can have many years experience in a field and still not be any good.
IME, Windows admins and developers of all stripes fall squarely into this category.
I've been in a position to hire and fire, and I can confidently say that restricting adverts (and criteria given to recruiters, who will do the initial selection) to "Knowledge of X" provides a far more interesting list of candidates.
Apart from anything else, once you have their CVs you can see how long their experience with X is, and when you get them to interview, you can find out if their experience is actually relevant to you or not.
Someone with (say) 5 years of C# working as a web developer may be of no value to me at all if I'm looking for someone to work on a C# DSP application, whereas someone with no commercial C# at all who knocked up a spectral analyser application in their spare time may be just right for the job.
In fact, someone with no C# at all, but who is competent in other languages and has domain knowledge may fit well, and would have been eliminated through a requirement for some number of years working in a particular language, or even knowledge of that particular language.
Maybe this person could convince me that C# isn't actually a good platform to build a DSP app on. If not, I'm sure they can learn C# in a jiffy if they are decently competent. Transferable skills, see ?
Obviously, the less specific you are in your criteria, the more CVs you will have to wade through, and the more candidates you will have to see. But time investment in this phase will pay itself back many fold. Recruitment by box ticking on the other hand, often leads to a mismatch.