我在 gmt 区域的数据库中有一个时间戳。如何根据用户时区显示时间?目前我有这样的时间
return luxon.DateTime.fromSQL(created_at).setZone('local');
Run Code Online (Sandbox Code Playgroud)
它返回 gtm 中的时间。
处理它的更简洁的方法是告诉解析器时间以 GMT 表示:
DateTime.fromSQL(current_time, {zone: "utc"}).toLocal()
Run Code Online (Sandbox Code Playgroud)
为了进一步解释这一点,您的原件中发生的事情是时间字符串旨在解释为 GMT 时间,但 Luxon 不知道这一点。因此,它将字符串解释为本地时间,这与偏移量所指的时间不同。但如果 Luxon 知道“这是用格林威治标准时间表示的”,那么它首先会得到正确的时间。