Spencer Stone was stabbed three times in the upper torso on October 8 as he was leaving a bar in Sacramento, the US state's capital. He underwent two hours of surgery.
The Sacramento Police Department tweeted that it had "arrested 28-year-old James Tran for the attempted murder of United States Air Force Staff Sergeant Spencer Stone."
"During the course of the investigation, detectives interviewed a number of witnesses and received information from the community that ultimately led to the identification of suspect Tran," it said.
Stone and two of his friends -- Army National Guard Specialist Alek Skarlatos and Anthony Sadler, a civilian -- helped foil an attack in August on a packed train headed to Paris.
They have since been hailed as heroes, both in the United States and in France, where they were awarded the Legion of Honor, the country's highest decoration.
Stone suffered deep slash wounds as he helped to overpower a heavily-armed gunman, Moroccan Ayoub El Khazzani, on August 21.
Armed with a pistol, an assault rifle and 270 rounds of ammunition, Khazzani is accused of seeking to massacre passengers on the Amsterdam-Paris train.