Let $U \in \mathbb{C}^{n \times n}$ be an arbitrary $n \times n$ unitary matrix, $U_1 = \operatorname{Re} U$ (real part of $U$), and $U_2 = \operatorname{Im} U$ (imaginary part of $U$). The construct the $2n \times 2n$ matrix
$$ J = \begin{pmatrix} U_1 & -U_2 \\ U_2 & U_1 \end{pmatrix} $$
One can show that $J$ is an orthogonal matrix (thanks to the comment of @Salcio): calculate
$$ \begin{align*} J^\mathsf{T} J &= \begin{bmatrix} U_1^\mathsf{T} U_1 + U_2^\mathsf{T} U_2 & -U_1^\mathsf{T} U_2 + U_2^\mathsf{T} U_1 \\ U_1^\mathsf{T} U_2 - U_2^\mathsf{T} U_1 & U_1^\mathsf{T} U_1 + U_2^\mathsf{T} U_2 \end{bmatrix} \end{align*} $$
Since $U$ is unitary, we get
$$ \begin{align*} U^\dagger U &= (U_1^\mathsf{T} - iU_2^\mathsf{T}) (U_1 + iU_2) \\ &= (U_1^\mathsf{T} U_1 + U_2^\mathsf{T} U_2) + i(U_1^\mathsf{T} U_2 - U_2^\mathsf{T} U_1) = 1 \end{align*} $$
The real and the imaginary parts of this equation gives
$$ U_1^\mathsf{T} U_1 + U_2^\mathsf{T} U_2 = 1, \quad U_1^\mathsf{T} U_2 - U_2^\mathsf{T} U_1 = 0 $$
Therefore $J^\mathsf{T} J = 1$, and $\det J = \pm 1$. Now the problem is that in my numerical test I always get $\det J = +1$. The code for the test is shown below (in Python, using the unitary matrix generator from SciPy):
import numpy as np
# generator of random unitary matrices
from scipy.stats import unitary_group
# dimension of the unitary matrix
n = 3
u = unitary_group.rvs(n)
u1, u2 = u.real, u.imag
j = np.block([[u1, -u2], [u2, u1]])
print(np.linalg.det(j))
How to further prove (or disprove) that $\det J = +1$ (ruling out the possibility $-1$)?
Motivation of the definition of $J$: consider two complex vectors $z, w \in \mathbb{C}^n$ related by $w = Uz$. Let
$$ \begin{align*} z &= z_1 + iz_2 && (z_1,z_2 \in \mathbb{R}^n) \\ w &= w_1 + iw_2 && (w_1,w_2 \in \mathbb{R}^n) \end{align*} $$
Then the real vectors $z_1,z_2,w_1,w_2$ are related by
$$ \begin{bmatrix} w_1 \\ w_2 \end{bmatrix} = J \begin{bmatrix} z_1 \\ z_2 \end{bmatrix} $$