I'm writing a novel set in U.S.A., Missouri, in 1895-1896. To be realistic, how long would it take at that time to travel from Missouri to South Africa (former Republic of Transvaal), in direct trip or making a stop in South England?
The journey would have consisted of three parts: St. Louis–New York by train, New York–Cape Town by steam ship, Cape Town–Johannesburg by train.
St. Louis–New York
This was a well-established line, serviced both by the New York Central Railway and the "Big Four" Pittsburgh, Cincinnati, Chicago and St. Louis Railroad. There were multiple trains dayly, and the travel time was around thirty hours. A timetable from 1908 for example shows a train leaving St Louis at 1.00 PM, and reaching New York at 5.55 PM the following day.
New York–Cape Town
I wasn't really able to establish whether there was a regular passenger service between the U.S. and the Cape before the turn of the century. It is mentioned in several sources there were cargo lines from 1893 onward, but did they take passengers? At some time between 1893 and 1930, Ellerman & Bucknall extended their line from New York to Calcutta via Cape Town to full passenger service, but when?
The travel time can only be computed from ship speeds. The distance is around 7,000 sea miles. Steamers runnning that route were not among the fastest of their time. A typical freighter, the Susquehanna, running that line for the Union Steam Ship Company, had a service speed of ten knots. That would result in a minimum travel time of 700 hours or around 30 days.
It is probable you would have to add one or two days for a stopover at the Cap Verde harbour of Mindelo for coal refueling.
Additionally, ships would obviously not run daily. My estimate is that around ten ships travelled the route at the time. If you set a turnaround time of 80 days, that would roughly mean four round trips per year per ship, and on average a ship every ten days.
Interestingly, taking the detour via Southampton, England would not have been that much slower. Depending on the ship, passing the Atlantic maybe would have taken a week, while Union Steam Ship boasts that its mail ships regularily take less than twenty days to reach Cape Town.
Direct rail service between Cape Town and Johannesburg opened in 1895. I was not able to find a timetable, and I have no idea how often these trains were running. A locomotive fan site mentions the trains were coordinated with the mail ships from England, which were arriving in two services, each fortnightly. (same source as above)
A travelogue from the 1930ties gives the time of traveling with 30 hours. Another travel book describing a journey in 1903 gives two hints: Their train ride started in Cape Town at 10.15 AM and reached Bloemfontein 10.45 PM the next day. (p. 20f) They left the train there and continued at a later date. On the return trip, the train from Johannesburg to Bloemfontein ran overnight, reaching Bloemfontein at midday. (p. 33)