According to Google, cold-hearted is "lacking affection or warmth" while hard-hearted is "incapable of being moved to pity or tenderness" but I'm unable to differentiate between these meanings. Also, both have "unfeeling" as a synonym.
Can someone explain the subtle difference between the usage these words?