Which is the preferred way to change field content before rendered?
hook_entity_view_alter() is for altering the render array of an entity, that is coming out of a view mode. It is not for a single field and changes in this hook would have no effect, when using the field alone, for example in a view. Using this hook would be the answer to the question Which is the preferred way to change the display (view mode) of an entity, before it is rendered? 

(When using this hook, don't digg to deep, you can only change the render elements in the top level. Not the referenced objects, they are only to get information, not to change the rendering)

But the question is to change the rendering of a field, you asked "everywhere throughout all contents" For this the right solution is a field formatter, this can be used everywhere in drupal, whenever a field is rendered, no matter if you define a display mode (aka view mode) of an entity or use the field in Views.

To make the picture complete, you can change a field twice while displaying content, first in a field formatter and the second time, when the whole content is build and this build array can be altered in hook_entity_view_alter()

In drupal 8 field formatters are no longer hooks, they are now plugins.

https://api.drupal.org/api/drupal/core!modules!field!field.api.php/group/field_formatter/8

The documentation does not help to setup this plugin. I would copy an example from core and put my own code in it, for example:

core\modules\datetime\src\Plugin\Field\FieldFormatter