数据清洗: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 这样的。

Go 复制代码
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
}
相关推荐
zhangjw3416 分钟前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
Wenweno0o3 小时前
Eino-Document 组件使用指南
golang·大模型·智能体·eino
yaoxin5211233 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
我叫黑大帅4 小时前
通过eino-ext如何正常indexer RAG?
后端·面试·go
NotFound4864 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
Ava的硅谷新视界5 小时前
用了一天 Claude Opus 4.7,聊几点真实感受
开发语言·后端·编程
rabbit_pro5 小时前
Python调用onnx模型
开发语言·python
浪客川6 小时前
【百例RUST - 010】字符串
开发语言·后端·rust
赵侃侃爱分享6 小时前
学完Python第一次写程序写了这个简单的计算器
开发语言·python
断眉的派大星7 小时前
# Python 魔术方法(魔法方法)超详细讲解
开发语言·python