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

如何将Facebook JSON中的created_time字符串转换为指定格式?

嘿,这个时间格式转换其实挺 straightforward 的,我给你整理了两种常用编程语言的实现方案,你可以根据自己的项目技术栈来选:

JavaScript 实现

如果你是在前端或者Node.js环境下开发,可以用原生的Date对象来处理:

function formatFacebookTime(createdTime) {
  // 解析UTC时间字符串,Facebook的格式符合ISO标准,Date可以直接识别
  const date = new Date(createdTime);
  
  // 提取UTC时间的各部分(如果需要转本地时区,把getUTC*换成get*即可)
  const year = date.getUTCFullYear();
  const month = String(date.getUTCMonth() + 1).padStart(2, '0'); // 月份从0开始,所以+1
  const day = String(date.getUTCDate()).padStart(2, '0');
  
  let hours = date.getUTCHours();
  const minutes = String(date.getUTCMinutes()).padStart(2, '0');
  
  // 转换为12小时制并区分上下午
  const period = hours >= 12 ? 'pm' : 'am';
  hours = hours % 12;
  hours = hours || 12; // 把0点(午夜)转换成12点
  
  // 拼接成目标格式
  return `${year}/${month}/${day} ${hours}:${minutes}${period}`;
}

// 测试一下
const fbTime = '2018-04-17T17:25:23+0000';
console.log(formatFacebookTime(fbTime)); // 输出: 2018/04/17 5:25pm

这个方法的好处是不需要额外引入第三方库,原生就能搞定。如果你的项目里已经在用Day.js、Moment.js这类时间库,也可以用它们的格式化方法,会更简洁。

Python 实现

如果是后端用Python开发,用标准库的datetime模块就能轻松处理:

from datetime import datetime

def format_facebook_time(created_time):
    # 按照Facebook的时间格式解析字符串
    dt = datetime.strptime(created_time, '%Y-%m-%dT%H:%M:%S%z')
    
    # 格式化目标格式:%I是12小时制,%p是AM/PM,转成小写
    formatted_str = dt.strftime('%Y/%m/%d %I:%M%p').lower()
    
    # 去掉小时的前导零(比如把"05:25pm"变成"5:25pm")
    formatted_str = formatted_str.replace(' 0', ' ')
    
    return formatted_str

# 测试
fb_time = '2018-04-17T17:25:23+0000'
print(format_facebook_time(fb_time)) # 输出: 2018/04/17 5:25pm

这里strptime的格式符完全匹配Facebook的时间字符串,strftime直接生成我们需要的格式,最后去掉小时的前导零就和你要的效果一致了。如果需要转换为本地时区,可以调用dt.astimezone()方法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:34:23