Could you share the product & version you’re seeing this in? (And verify that we’re talking about C# too?) The rules site actually shows multiple compliant solutions, which indicates to me that you may be looking at an old version of the rule description in an out-of-date product version.
The rule does not detect any “compliant production” implementation. It will always raise for any DateTime.UtcNow access. The reasoning is, that we can not detect that the usage of DateTime.UtcNow is compliant in that specific context. But there should be exactly one location in your solution where this issue is a false positive. You should suppress it there with a #pragma warning disable S6354 // Compliant implementation of the clock interface for production.
I created an issue for this and added it to our backlog:
@Martin_Strecker unfortunately, that is not true. If you use an external implementation of an IClock interface, or a testable clock like this one, you’ll have none.
Furthermore, if you deal with multiple IClock interfaces (once of your project, and one provided by another package, which happened at once in my career), or if (also from own experience) you’ll have might end up with multiple.
So the best you can - and I argue should - do, is use suppress to explain that this occasion is your production implementation that helps you to overcome the problem raised by this rule.