Zabaleta made more than 300 appearances at City, winning two Premier League titles, two League Cups and an FA Cup title during his nine-year spell at the Etihad Stadium.
"This is an absolute pleasure to be part of West Ham United Football Club," Zabaleta told the club website.
"Sometimes a new challenge is all you need as a person and as a player. I thought my time at City was done.
"Also, as a player, I thought I wanted to keep playing in the Premier League..after being in this country for so long, this is a new challenge for me and I'm ready for it."
Zabaleta will compete with 23-year-old Sam Byram for the right-back spot in Slaven Bilic's side.
(Reporting by Hardik Vyas in Bengaluru; Editing by Hugh Lawson)
Share
