- Home
- Flights
- Flights from Jakarta
- Jakarta to Shanghai
Cheap flights from Jakarta to Shanghai from US$151
China Eastern Airlines and Garuda Indonesia fly nonstop from Jakarta to Shanghai. The flight takes around 6h 04m, and the cheapest one-way fare we found recently is US$151 on 2 Dec.
Direct flights available 6h 04m Cheapest in December Prices checked 14 days ago
Jakarta to Shanghai at a glance
Cheapest one-wayUS$151China Southern Airlines · 1 stop · Wed 2 DecFastest flight6h 04mEstimated
Nonstop flightsYesChina Eastern Airlines, Garuda Indonesia
Airlines flying nonstop from Jakarta to Shanghai
2 airlines on this route.
Cheapest month to fly from Jakarta to Shanghai
Lowest one-way fare found for each month: December is cheapest, February the most expensive.
Good to know
- Distance
- 4,447 km2,762 miles
- Flight time
- 6h 04mestimate
- Time difference
- +1hShanghai vs Jakarta
- Currency in Shanghai
- CNY
- Airports
- CGK, HLP → PVG, SHA
Flights from Jakarta to Shanghai: questions answered
How much is a flight from Jakarta to Shanghai?
The cheapest one-way fare we found recently is US$151 with 1 stop, departing in December. Prices change constantly, so search your dates for the live fare.
Are there direct flights from Jakarta to Shanghai?
Yes. China Eastern Airlines and Garuda Indonesia fly this route nonstop.
How long is the flight from Jakarta to Shanghai?
A nonstop flight covers 4,447 km and takes around 6h 04m.
What is the cheapest month to fly from Jakarta to Shanghai?
December has the lowest fare we found (US$151), while February is the most expensive (US$234).
Which airlines fly from Jakarta to Shanghai?
China Eastern Airlines and Garuda Indonesia operate nonstop flights on this route.
Which airports serve Jakarta and Shanghai?
Jakarta: Soekarno-Hatta International Airport (CGK) and Halim Perdanakusuma International Airport (HLP). Shanghai: Shanghai Pudong International Airport (PVG) and Shanghai Hongqiao International Airport (SHA).
What is the time difference between Jakarta and Shanghai?
Shanghai is 1 hour ahead of Jakarta.




