When I was building this blog on my local environment, there was no issue around date, but after I changed the workflow to deploy the blog from local to GitHub Actions, it seems last updated date became current date, so I fixed it.
I found that date on my blog was strange after I deployed my blog.
On top page, all dates were the same.
I first guessed that it was because I updated page list component, but each page also had the issue.
It worked on my local environment, so I thought there is something wrong around build process.
I checked the source code of @vuepress/plugin-last-updated and I found that lastUpdated comes from git log -1 --format="%at".
However, there seems to be no explanation in document like git pretty formats or some related articles that this command produces current date.
Then I thought that git repository might be different from my local environment, and checked actions/checkout action, and I found that fetch-depth is 1 by default.
This means that git histories are not fetched, and it seems that I couldn't get the author date (%ai) from the article Markdown file due to this.
This issue was resolved by using 0 to fetch-depth to get histories.
steps:
  - uses: actions/checkout@v2
    with:
      fetch-depth: 0
If this repository gets bigger, perhaps build time could be an issue, but I don’t have to handle it now.
Additionally, it seems that my blog was shown with strange date format - I write my blog in Japan, but the timezone was not JST - because the pages are built on CI and the timezone was not Asia/Tokyo, so I've also updated this to specify the format with timezone.
I have chosen dayjs this time and configured @vuepress/plugin-last-updated in .vuepress/config.js like this:
[
  '@vuepress/last-updated',
  {
    transformer: (timestamp, lang) => {
      const dayjs = require('dayjs')
      const utc = require('dayjs/plugin/utc')
      const timezone = require('dayjs/plugin/timezone')
      dayjs.extend(utc)
      dayjs.extend(timezone)
      return dayjs(timestamp).tz('Asia/Tokyo').format('YYYY/MM/DD HH:mmZ')
    }
  }
],
With this update, last updated dates are shown like 2021/02/05 00:28+09:00.
It specifies the timezone, so it is always shown with JST timezone regardless of the selected language or runtime environment.
(It is too detailed format to be a blog, though 😇)