text: Title: 【建议】KEEP导出的GPX数据时区格式不规范修复方法
  Body: # 问题描述
  KEEP导出的GPX数据时间为UTC时间，但是却多了毫秒小数点，导致GPX导入Starva时将时区识别错误，时间混乱。
  
  ## 数据样本
  ```xml
   <trkpt lat="32.1877403071313" lon="118.70919897992724">
      <time>2022-10-25T23:18:10.175000Z</time>
  </trkpt>
  ```
  # 修复方式
  
  ## 测试
  
  将小数点后的数据去掉
  
  ```shell
  echo -e "<time>2022-09-19T12:08:37.731000Z</time>" | sed -n 's/\.[[:digit:]]\{3\}0\{3\}Z/Z/ p'
  ```
  ## 批量修复脚本
  
  ```shell
  #!/bin/bash  
    
  ls *.gpx | xargs sed -i 's/\.[[:digit:]]\{3\}0\{3\}Z/Z/g'
  ```
  
  # 引申问题
  同样存在时区问题的还有行者软件导出的GPX时间也是不规范的
  
  行者软件导出的时间格式为UTC格式，但是其真实事件却是东八区时间，这就导致导入Strava时出现了时区错误的问题。需要对时间格式进行转换。
  
  Strava认可的时区格式为`+08:00`
  
  比如：
  
  行者软件导出的GPX如下：
  ```xml
  <time>2022-10-17T07:14:49Z</time>
  ```
  这是UTC格式，但其时间却是东八区时间
  正确的格式应该如下，声明时区
  ```xml
  <time>2022-10-17T07:14:49+08:00</time>
  ```
  
  ## 行者GPX时区修复
  ```shell
  #!/bin/bash
  
  ls *.gpx | xargs sed -i 's/Z</+08:00</g'
  ```
  
  
  # 参考资料
  
  按照GPX规范，GPX中的时间值如果没有指定时区，则默认应该按照UTC世界标准时间理解：  
  如：下面GPX四个时间串，表示的是一样的时间：  
  2015-05-19T20:31:37 ： 没有指定时区，按照UTC时间理解（默认）  
  2015-05-19T20:31:37Z ： 指定为UTC时间理解  
  2015-05-20T04:31:37+0800 ： 指定了时区，即：北京时间，按照北京时间理解  
  2015-05-20T04:31:37+08:00 ：同上  
  按照上面的逻辑，GPX中的时间就是一个唯一确定的时间时间，而不依赖与当时所处的时区。
  
  GPX文件的时间格式遵守[ISO-8601标准](https://baike.baidu.com/item/ISO%208601/3910715)：
  
  小时、分和秒都用2位数表示，对UTC时间最后加一个大写字母Z，其他时区用实际时间加时差表示。如UTC时间下午2点30分5秒表示为14:30:05Z或143005Z，当时的北京时间表示为22:30:05+08:00或223005+0800，也可以简化成223005+08。
  
  
  