ptrv/gpx2spatialite does this remarkably well, saving timestamps for all points and deriving speed and length data for tracks. It also won't import duplicate tracks, so you can feed it a huge pile for GPX files and it will munge them appropriately.
Update: usage examples, as requested:
Initialize new database:
gpx2spatialite_create_db db.sqlite
Add a single gpx file:
gpx2spatialite -d db.sqlite -u user file.gpx
(If username user does not exist in the database, will query if you wish to create it. The database is built with tracks/waypoints/routes assigned to one or more users.)
Add all of the gpx files in folder/:
gpx2spatialite -d db.sqlite -u user folder/
Usage: it's a spatial database, with table tracklines holding the tracks as polylines, trackpoints containing the individual points (with time, elevation, etc), and waypoints for any defined waypoints. There are also numerous indices, some world city definitions and possibly also embedded SLD styling information I haven't yet explored. As a trivial example, here's a map of how my hometown (Toronto) is defined through ~7 years of track logs:
By using lines at 75% transparency, the most frequently-travelled routes become darker.
You could use QGIS and use the GPS plugin. The plugin allow you to import the gpx file, edit and save the changes. You can also add imagery into the background by using the Open Layers plugin.
To import and edit:
- Open QGIS
- Go Vector>GPS>GPS Tools
- When the GPS Tools window opens, browse to the gpx file you want to add and hit ok.
- When the GPX is added to the layers window, right click on the the layer you want to edit and select "Open Attribute Table"
- With the Attribute Table open, click the pencil icon to start editing
- When editing, change the required items. In this example, I just changed the names.
- When finished editing, hit the save button and then the pencil button to stop editing.
- The changes should now be reflected in the original gpx file
After compiling this answer, I realised that this method won't allow you to see the time/date stamp. There is answer located here that explains how to view the time/date stamp in QGIS. However, this method won't allow you to edit the file unless you save it as something else. In my test I saved the gpx file as a shapefile (right mouse click on gpx and save as ESRI Shapefile), changed the time/date in the attribute file and then re-saved it as a gpx.
Best Answer
You can do this and more prior to importing into QGIS with a tool called GPS Track Editor (www.gpstrackeditor.com) It allows you to merge (from simultaneously running gps units), restructure, increase frequency (densify), reverse and filter for local inconsitances. A great free utility.