We present a new algorithm that, given two matrices in $GL(n,Q)$, decides if they are conjugate in $GL(n,Z)$ and, if so, determines a conjugating matrix. We also give an algorithm to construct a generating set for the centraliser in $GL(n,Z)$ of a matrix in $GL(n,Q)$. We do this by reducing these problems respectively to the isomorphism and automorphism group problems for certain modules over rings of the form $mathcal O_K[y]/(y^l)$, where $mathcal O_K$ is the maximal order of an algebraic number field and $l in N$, and then provide algorithms to solve the latter. The algorithms are practical and our implementations are publicly available in Magma.