数据清洗:Golang规范日期格式

在做数据导入的时候,由于输入人员多和随意(大多数是审美不同),导致数据格式五花八门,就一个日期列,就会出现下面这些样式的:

  • 2023.02.03
  • 2023/02/03
  • 2023.2.3
  • 2023/2/3
  • 2023年2月3日
  • 2023年2月3日上午
  • 2023-02-03

大体就这么多样式,跟多的,就是中间有些空格。

为了达到统一的数据美,需要一个函数,把所有样式的,都统一成 2023-02-03 这样的。

func HandleData(date string) string {
	date = strings.TrimSpace(date)
	date = strings.ReplaceAll(date, ".", "-")
	date = strings.ReplaceAll(date, "/", "-")
	date = strings.ReplaceAll(date, "年", "-")
	date = strings.ReplaceAll(date, "月", "-")
	date = strings.ReplaceAll(date, "日", "")
	date = strings.ReplaceAll(date, "上午", "")
	date = strings.ReplaceAll(date, "下午", "")

	year := date[0:4]
	tmp := date[5:]
	m := tmp[:strings.Index(tmp, "-")]
	d := tmp[strings.Index(tmp, "-")+1:]
	// fmt.Println(year, m, d)

	m = strings.ReplaceAll(m, " ", "")
	d = strings.ReplaceAll(d, " ", "")
	if len(m) == 1 {
		m = "0" + m
	}
	if len(d) == 1 {
		d = "0" + d
	}
	return year + "-" + m + "-" + d
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值