Barcelona Sants

Vista nocturna de la fachada principal

Las estaciones son algo más que un lugar desde el que subir a un tren o desembarcar del mismo. Además de prestar sus servicios a los viajeros y usuarios, muchas de ellas constituyen una referencia en las localidades donde su ubican.

Aquí se pueden conocer los horarios de llegadas y salidas de la estación, así como los servicios que se ofrecen en su recinto e instalaciones. Para ello acceda a dicha información a través del selector que ponemos a su disposición.

Ir al proyecto de transformación de Barcelona Sants

x
Adif en tu móvil
Horarios en tiempo real
Descárgala ya
Instalar
Filtrar por
 

Salidas

Hora de salida Destino Línea Vía
No se ha podido recuperar información de circulación.
 

Llegadas

Hora de llegada Origen Línea Vía
3 min
R1
8
6 min
R4
23:28
R2N
23:34
R4
23:36
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
23:39
R1
23:45
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
23:56
R2N
00:04
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
00:33
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
05:12
R2N
05:27
R4
05:29
R2N
05:37
R2N
05:42
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
05:48
R1
05:51
R4
05:54
R1
05:57
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
06:00
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
06:07
R2N
06:09
R1
06:12
R2S
Por obras entre Sitges y Garraf este tren puede sufrir alteraciones en su recorrido. Consulte días y tramos afectados en www.renfe.com, @InfoRenfe, rodalies.gencat.cat y @rodalies.
06:24
R1
06:27
R4
No se ha podido recuperar información de circulación.

Informacion de la estación

  • Dirección

    Plaça. dels Paísos Catalans, 1 - 7 --- 08014 Barcelona --- BARCELONA

  • Horario

    Lunes a viernes: 04:30 a 00:30 - Sábados, domingos y festivos: 05:00 a 00:30

  • Intermodalidad

    Taxi
    Joan Peiró, 2-6
    Autobús
    Paradas
    3166, 3876, 3877 Pl Joan Peiró / 3878 Pg Sant Antoni - Parc de l'Espanya Industrial
    Líneas
    27 - Estació de Sants / Roquetes
    78 - Estació de Sants / Sant Joan Despí
    115 - La Bordeta
    CJ Ciutat. Justícia
    H10 - Pl. Sants / Olímpic de Badalona
    L94 - Barcelona
    L94 Castelldefels
    V5 - Mare de Déu de Port / Pedralbes




    Metro
    Líneas
    L3 Zona Universitària / Trinitat Nova
    L5 Cornellà Centre / Vall d'Hebron

    Rodalies
    R1 Molins de Rei / Maçanet-Massanes
    R2 Castelldefels / Granollers Centre
    R2 Nord Aeroport / Maçanet-Massanes
    R2 Sud Barcelona Estació de França / Sant Vicenç de Calders
    R3 L´Hospitalet de Llobregat / Puigcerdà
    R4 Sant Vicenç de Calders / Manresa
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> lista3[cur_elem?index+1].titulo  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" at line 167, column 101]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if (texto == "Adaptados" && esMayor(...  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" in macro "orderServicesList" at line 166, column 41]
	- Reached through: @orderServicesList lista, texto  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" in macro "listPaint" at line 49, column 9]
	- Reached through: @listPaint servicios.id.getSiblings()...  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" at line 37, column 9]
----
1<script type="text/javascript"> 
2 
3 
4function cierraDetalles(){ 
5	var detalles = $("div[id^='detalleServicio']"); 
6	var iconos = $("[id^='button-detalleServicio']"); 
7	for (let detalle of detalles) { 
8		detalle.style.display = 'none' 
9
10	for (let icono of iconos) { 
11		icono.setAttribute('aria-expanded', 'false'); 
12
13
14 
15function toggle(id, id2) { 
16 
17 
18	var n = document.getElementById(id); 
19	if (n.style.display != 'none') 
20
21		n.style.display = 'none'; 
22		document.getElementById(id2).setAttribute('aria-expanded', 'false'); 
23
24	else 
25
26		cierraDetalles(); 
27		n.style.display = ''; 
28		document.getElementById(id2).setAttribute('aria-expanded', 'true'); 
29
30
31  </script> 
32 
33<#if servicios?? && servicios.id?? && servicios.id.getSiblings()?has_content> 
34	<div class="title-servicios"> 
35    	<h3><@liferay.language key="es.adif.estacion.servicios"/></h3> 
36	</div> 
37	<@listPaint servicios.id.getSiblings() ""/> 
38</#if> 
39 
40<#if serviciosAdaptados?? && serviciosAdaptados.idAdaptados?? && serviciosAdaptados.idAdaptados.getSiblings()?has_content> 
41	<div class="title-servicios"> 
42    	<h3><@liferay.language key="es.adif.estacion.servicios-adaptados"/></h3> 
43	</div> 
44	<@listPaint serviciosAdaptados.idAdaptados.getSiblings() "Adaptados"/> 
45</#if> 
46 
47<#macro listPaint lista texto> 
48 
49	<@orderServicesList lista texto/> 
50 
51	<#list listaOrdenada as cur_id> 
52 
53		<#if cur_id?index %3 == 0> 
54			<#assign 
55			hay1 = listaOrdenada[cur_id?index+1]?? 
56			hay2 = listaOrdenada[cur_id?index+2]?? 
57			/> 
58			<div class="servicios-estacion" id="servicios-estacion"> 
59	        <@boxPaint cur_id cur_id?index texto/> 
60				<#if hay1> 
61					<@boxPaint listaOrdenada[cur_id?index+1] cur_id?index+1 texto/> 
62					<#if hay2> 
63						<@boxPaint listaOrdenada[cur_id?index+2] cur_id?index+2 texto/> 
64					</#if> 
65				</#if> 
66	         </div> 
67			<@detailPaint cur_id cur_id?index texto/> 
68			<#if hay1> 
69				<@detailPaint listaOrdenada[cur_id?index+1] cur_id?index+1 texto/> 
70				<#if hay2> 
71					<@detailPaint  listaOrdenada[cur_id?index+2] cur_id?index+2 texto/> 
72				</#if> 
73			</#if> 
74		</#if> 
75 
76	</#list> 
77 
78</#macro> 
79 
80<#macro boxPaint elem index texto> 
81	<#if texto!="Adaptados"> 
82		<#if elem.popServicios.getData() ?? && elem.popServicios.getData() != ""> 
83			<button class="linkServiciosDesp" id="button-detalleServicio${texto}-${index}" aria-expanded="false" aria-controls="detalleServicio${texto}-${index}" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')"> 
84		</#if> 
85		<div class="servicio-estacion" id="iconoServicio${texto}-${index}"> 
86			<div class="servicio-estacion-icono" style="background-image:url('${elem.icono.getData()}')"></div><!-- /.servicio-estacion-icono --> 
87			<div class="servicio-estacion-datos"> 
88				<h4>${elem.titulo.getData()}</h4> 
89				<p class="descripcion-servicios">${elem.descripcionServicios.getData()}</p> 
90				<#if elem.popServicios.getData() ?? && elem.popServicios.getData() != ""> 
91					<p class="detalle-mas-informacion"> 
92					<span class="texto_servicios_responsive" data-desktoptext="Más información" data-phonetext="+"></span> 
93					</p> 
94				</#if> 
95			</div> 
96		</div> 
97		<#if elem.popServicios.getData() ?? && elem.popServicios.getData() != ""> 
98			</button> 
99		</#if> 
100	<#else> 
101		<#if elem.popAdaptados.getData() ?? && elem.popAdaptados.getData() != ""> 
102			<button class="linkServiciosDesp" id="button-detalleServicio${texto}-${index}" aria-expanded="false" aria-controls="detalleServicio${texto}-${index}" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')"> 
103		</#if> 
104		<div class="servicio-estacion" id="iconoServicio${texto}-${index}"> 
105			<div class="servicio-estacion-icono" style="background-image:url('${elem.iconoAdaptados.getData()}'"></div><!-- /.servicio-estacion-icono --> 
106			<div class="servicio-estacion-datos"> 
107				<h4>${elem.tituloAdaptados.getData()}</h4> 
108				<p class="descripcion-servicios">${elem.descripcionAdaptados.getData()}</p> 
109				<#if elem.popAdaptados.getData() ?? && elem.popAdaptados.getData() != ""> 
110					<p class="detalle-mas-informacion"> 
111						<span class="texto_servicios_responsive" data-desktoptext="Más información" data-phonetext="+"></span> 
112					</p> 
113				</#if> 
114			</div> 
115		</div> 
116		<#if elem.popAdaptados.getData() ?? && elem.popAdaptados.getData() != ""> 
117			</button> 
118		</#if> 
119	</#if> 
120</#macro> 
121 
122<#macro detailPaint elem index texto> 
123	<#if texto!="Adaptados"> 
124		<div role="region" aria-labelledby="button-detalleServicio${texto}-${index}" class="servicios-estacion" id="detalleServicio${texto}-${index}" style="display:none"> 
125		<div class="servicio-estacion servicio-estacion-detalle servicio-estacion-detalle-${index%3} "> 
126			<div class="servicio-estacion-icono" style="background-image:url('${elem.icono.getData()}')"></div><!-- /.servicio-estacion-icono --> 
127			<div class="servicio-estacion-datos"> 
128				<h4>${elem.titulo.getData()}</h4> 
129				${elem.popServicios.getData()} 
130				<p> 
131					<button aria-label="<@liferay.language key="navigation.cerrar" /> ${elem.titulo.getData()}" class="btn-close-adif"  type="button" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')">&times;</button> 
132 
133				</p> 
134			</div> 
135		</div> 
136	</div> 
137	<#else> 
138		<div role="region" aria-labelledby="button-detalleServicio${texto}-${index}" class="servicios-estacion" id="detalleServicio${texto}-${index}" style="display:none"> 
139		<div class="servicio-estacion servicio-estacion-detalle servicio-estacion-detalle-${index%3}"> 
140			<div class="servicio-estacion-icono" style="background-image:url('${elem.iconoAdaptados.getData()}'"></div><!-- /.servicio-estacion-icono --> 
141			<div class="servicio-estacion-datos"> 
142				<h4>${elem.tituloAdaptados.getData()}</h4> 
143				${elem.popAdaptados.getData()} 
144				<p> 
145					<button class="btn-close-adif" aria-label="<@liferay.language key="navigation.cerrar" /> ${elem.tituloAdaptados.getData()}" type="button" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')">&times;</button> 
146				</p> 
147			</div> 
148		</div> 
149	</div> 
150	</#if> 
151 
152</#macro> 
153 
154<#macro orderServicesList lista texto> 
155	<#assign lista2 = []> 
156	<#assign lista3 = lista> 
157	<#assign stop = true> 
158	<#assign run = true> 
159	<#assign iteraciones = lista3?size*lista3?size> 
160	<#list 0..iteraciones as i> 
161		<#assign run = false> 
162		<#assign saltarSiguiente = false> 
163		<#list lista3 as cur_elem> 
164			<#if !saltarSiguiente> 
165				<#if !cur_elem?is_last > 
166					<#if (texto=="Adaptados" && esMayor(cur_elem.tituloAdaptados.getData(),lista3[cur_elem?index+1].tituloAdaptados.getData())) 
167					|| (texto!="Adaptados" && esMayor(cur_elem.titulo.getData(),lista3[cur_elem?index+1].titulo.getData()))> 
168						<#assign run = true> 
169						<#assign lista2 = lista2 + [lista3[cur_elem?index+1], cur_elem]> 
170						<#assign saltarSiguiente = true> 
171					<#else> 
172						<#assign lista2 = lista2 + [cur_elem]/> 
173					</#if> 
174				<#else> 
175					<#assign lista2 = lista2 + [cur_elem]> 
176				</#if> 
177			<#else> 
178				<#assign saltarSiguiente = false/> 
179			</#if> 
180		</#list> 
181		<#if !run> 
182			<#break> 
183		</#if> 
184		<#assign lista3 = lista2> 
185		<#assign lista2 = []> 
186	</#list> 
187 
188	<#assign listaOrdenada = lista3> 
189</#macro> 
190 
191<#function esMayor string1 string2> 
192	<#assign strings = [string1,string2]?sort> 
193	<#return strings[0]==string2> 
194</#function> 
Logo Natura

Natura

Número de local: Vestíbulo

Logo Farine

Farine

http://es.areas.com/es/spain

Número de local: Vestíbulo

Logo Caffé di Fiore

Caffé di Fiore

Número de local: Vestíbulo

Logo McDonald's

McDonald's

+34 933 303 095

www.mcdonalds.es

Número de local: Vestíbulo

Logo La parada de l'estació

La parada de l'estació

Número de local: Vestíbulo

Logo El tren de la Sort

El tren de la Sort

Número de local: Vestíbulo

Logo Hotel Barceló Sants

Hotel Barceló Sants

+34 920 250 093

www.hostallaestacionavila.com

Número de local: Zona Exterior

Logo Europcar

Europcar

www.europcar.es

Número de local: Parking

Logo Alamo Enterprise National

Alamo Enterprise National

http://www.enterprise.es

Número de local: Parking

Logo ONCE

ONCE

Número de local: Vestíbulo

Logo Tecnotrón

Tecnotrón

Número de local: Vestíbulo

Logo Sixt

Sixt

www.sixt.es

Número de local: Parking

Logo One Hundred Restrooms

One Hundred Restrooms

Número de local: Vestíbulo

Logo Cajero Automático

Cajero Automático

Número de local: Vestíbulo

Logo Ok Mobility

Ok Mobility

Número de local: Parking -1