You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需使用何种正则表达式提取并替换Discord的<t:时间戳:R>格式内容

提取并替换Discord时间格式为可读相对时间

正则表达式

使用以下正则表达式匹配并提取<t:1583277337:R>格式的内容:

<t:(\d+):R>
  • 括号内的(\d+)会捕获以秒为单位的Unix时间戳,为后续转换提供数据。

替换实现示例(Python)

以下是完整的处理流程代码,可直接用于替换文本中的Discord时间格式:

import datetime
import re

def replace_discord_relative_time(text):
    pattern = r'<t:(\d+):R>'
    
    def convert_timestamp(match):
        timestamp = int(match.group(1))
        target_time = datetime.datetime.fromtimestamp(timestamp, datetime.timezone.utc)
        now = datetime.datetime.now(datetime.timezone.utc)
        delta = now - target_time
        
        # 按时间差粒度生成中文相对时间
        if delta.days >= 365:
            return f"{delta.days // 365}年前"
        elif delta.days >= 30:
            return f"{delta.days // 30}个月前"
        elif delta.days >= 7:
            return f"{delta.days // 7}周前"
        elif delta.days >= 1:
            return f"{delta.days}天前"
        elif delta.seconds >= 3600:
            return f"{delta.seconds // 3600}小时前"
        elif delta.seconds >= 60:
            return f"{delta.seconds // 60}分钟前"
        else:
            return "刚刚"
    
    return re.sub(pattern, convert_timestamp, text)

使用示例

sample_bio = "𝖓𝖔𝖙 𝖊𝖛𝖊𝖗𝖞𝖔𝖓𝖊 𝖜𝖎𝖑𝖑 𝖇𝖊𝖑𝖎𝖊𝖛𝖊 𝖎𝖓 𝖞𝖔𝖚, 𝖇𝖚𝖙 𝖓𝖔𝖙 𝖊𝖛𝖊𝖗𝖞𝖔𝖓𝖊 𝖒𝖆𝖙𝖙𝖊𝖗𝖘...\n\n<t:1583277337:R> <3"
processed_text = replace_discord_relative_time(sample_bio)
print(processed_text)

输出结果示例:

𝖓𝖔𝖙 𝖊𝖛𝖊𝖗𝖞𝖔𝖓𝖊 𝖜𝖎𝖑𝖑 𝖇𝖊𝖑𝖎𝖊𝖛𝖊 𝖎𝖓 𝖞𝖔𝖚, 𝖇𝖚𝖙 𝖓𝖔𝖙 𝖊𝖛𝖊𝖗𝖞𝖔𝖓𝖊 𝖒𝖆𝖙𝖙𝖊𝖗𝖘...

5年前 <3

关键说明

  • 采用UTC时区计算时间差,避免本地时区差异导致的误差
  • 可根据需求调整时间粒度(比如增加/减少时间单位的判断)
  • 若需适配其他Discord时间格式(如<t:XXX:F>),只需修改正则表达式末尾的格式标识

内容的提问来源于stack exchange,提问作者Rixqi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:02:19