A white US Army veteran accused of fatally stabbing a 66-year-old black man has been charged with murder as an "act of terrorism" after telling police he was planning a race-based killing spree.

James Jackson, 28, "prowled the streets of New York for three days in search of a black person to assassinate in order to launch a campaign of terrorism against our Manhattan community and the values we celebrate," Manhattan District Attorney Cyrus Vance said in a statement on Monday.

"Last week, with total presence of mind, he acted on his plan, randomly selecting a beloved New Yorker solely on the basis of his skin colour, and stabbing him repeatedly and publicly on a Midtown street corner."

He was formally charged in New York State Supreme Court with one count each of murder in the first and second degrees as an "act of terrorism", murder in the second degree as a hate crime, as well as three counts of criminal possession of a weapon.

Jackson's lawyer has said there are "obvious psychological issues" involved.

Police say Jackson admitted stabbing Timothy Caughman, who was collecting bottles for recycling, multiple times on March 20. Caughman managed to walk two blocks to a police station, but died in hospital.

Jackson - who served in the US Army from 2009 to 2012, a stint that included a tour of duty in Afghanistan - turned himself in to police in Times Square on Wednesday after police released surveillance video of the stabbing.

He told police he considered the killing to be "practice prior to going to Times Square to kill additional black men," according to the complaint.

It said he was "angered by black men mixing with white women".

The case comes as several major US cities, including New York, grapple with an increase in hate crimes.

On Wednesday, Vance's office launched a "Too New York To Hate" campaign to encourage victims and witnesses of violence against an ethnic group, community or religion to come forward to testify.