How to calculate arbitrary phase shift in discrete signal?
The answers to this question explain the solution for the continuous-time case. In discrete time, the solution is completely analogous. The impulse response of a phase shifter with phase shift $\theta$ is given by

$$h[n]=\cos(\theta)\delta[n]+\sin(\theta)g[n]\tag{1}$$

where $g[n]$ is the impulse response of an (ideal) discrete-time Hilbert transformer. Eq. $(1)$ shows that the solution is just a linear combination of the identity system and a Hilbert transformer (which performs a $90$ degree phase shift).