South African President Jacob Zuma has visited Nelson Mandela in hospital and says the 94-year-old is "looking much better".

Mr Zuma said the ex-president was in good spirits on Christmas morning.

Family members, including his wife Graca Machel, are spending the day with Mr Mandela at his bedside.

According to Mr Zuma, doctors are "happy" with Mr Mandela's progress.

The anti-apartheid icon was admitted to hospital on December 8 with a lung infection.

Since then he has also undergone surgery to remove gallstones.

Officials have previously said Mr Mandela was improving, but note that doctors are taking extraordinary care because of his age.

On Monday, Mr Zuma's office, which is tasked with issuing updates on Mr Mandela's condition, said doctors had confirmed that he would not be home for Christmas.

But there was no indication of when he might be discharged.

His grandson Mandla Mandela earlier told eNCA television that the family was saddened by his absence from home this Christmas.

"We are greatly saddened by his absence ... we didn't anticipate that he would be away for so long," he said from Mvezo village, where he is the local chief.

He said the family was hopeful that the much loved elderly statesman will be home soon, adding that his presence was enjoyed by the family and the community of Qunu, the rural village where he grew up and later retired to.

Before his retirement in 2004, Mr Mandela used to host a Christmas feast for impoverished children in Qunu, which was a highlight for many.