He also said the Americans decided to pay for property they destroyed to avoid calling police.
Fernando Deluz, a 38-year-old disc jockey, said he had stopped at the gas station around 6 a.m. on Sunday after working a party all night. He said security guards confronted the swimmers about a bathroom door they apparently forced open.
When two swimmers walked off, Deluz says one of the two security guards put one hand on his gun and pointed at the ground, telling the men in Portuguese to sit. The other guard stood by but did nothing, Deluz says.
"There was no aggression. Pointing a gun at them? Never. There was nothing like that," Deluz said during an interview with The Associated Press.
The incident has become a defining story of the Games. Brazilian police have said Lochte was lying when he said he was robbed.
Lochte apologized Friday for not being "more careful and candid" about how he described the incident, but maintained a gun was pointed at him by a stranger and that the swimmers were forced to pay money to leave the gas station.
Police have gone back and forth about whether guns were pulled on the swimmers.
Deluz said he began to translate when he realized the swimmers did not understand the guards.
"That is when they started saying, 'No police. Please, don't call police!'" Deluz said.
Two days later, upon reading Lochte's initial account of a robbery, Deluz says he was surprised to learn that the men were Olympic swimmers.
"They made a lot of mistakes," Deluz said. "But the worst was that they lied about what happened."
Will apology put an end to Lochte's legal issues in Rio?
Mark Schwarz reacts to Ryan Lochte's apology for his behavior related to a late-night incident at a Rio de Janeiro gas station.