|
@@ -1,12 +1,10 @@
|
|
|
package clean
|
|
|
|
|
|
import (
|
|
|
- "data_ai/ul"
|
|
|
"github.com/shopspring/decimal"
|
|
|
qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
|
|
|
"regexp"
|
|
|
"strings"
|
|
|
- "time"
|
|
|
)
|
|
|
|
|
|
var numReg = regexp.MustCompile("[0-9.]+")
|
|
@@ -18,37 +16,82 @@ var YMD_Reg2 = regexp.MustCompile("(\\d{4}[-]\\d{1,2}[-]\\d{1,2})")
|
|
|
var HMS_Reg1 = regexp.MustCompile("(\\d{1,2}时\\d{1,2}分\\d{1,2}秒)")
|
|
|
var HMS_Reg2 = regexp.MustCompile("(\\d{1,2}[:]\\d{1,2}[:]\\d{1,2})")
|
|
|
|
|
|
+func fillPrefix(s string) string {
|
|
|
+ if len(s) == 2 {
|
|
|
+ return s
|
|
|
+ } else if len(s) == 1 {
|
|
|
+ return "0" + s
|
|
|
+ } else {
|
|
|
+ return "00"
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 获取年月日
|
|
|
func convertYMD(ymd string) string {
|
|
|
if ymd1 := YMD_Reg1.FindString(ymd); ymd1 != "" {
|
|
|
-
|
|
|
+ ymd1 = strings.ReplaceAll(ymd1, "年", "-")
|
|
|
+ ymd1 = strings.ReplaceAll(ymd1, "月", "-")
|
|
|
+ ymd1 = strings.ReplaceAll(ymd1, "日", "")
|
|
|
+ if arr := strings.Split(ymd1, "-"); len(arr) == 3 {
|
|
|
+ y, m, d := arr[0], arr[1], arr[2]
|
|
|
+ return y + "-" + fillPrefix(m) + "-" + fillPrefix(d)
|
|
|
+ } else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ymd2 := YMD_Reg2.FindString(ymd); ymd2 != "" {
|
|
|
+ if arr := strings.Split(ymd2, "-"); len(arr) == 3 {
|
|
|
+ y, m, d := arr[0], arr[1], arr[2]
|
|
|
+ return y + "-" + fillPrefix(m) + "-" + fillPrefix(d)
|
|
|
+ } else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
}
|
|
|
return ""
|
|
|
}
|
|
|
-func convertHMS(hms string) string {
|
|
|
- if hms1 := YMD_Reg1.FindString(hms); hms1 != "" {
|
|
|
|
|
|
+// 获取时分秒
|
|
|
+func convertHMS(hms string) string {
|
|
|
+ if hms1 := HMS_Reg1.FindString(hms); hms1 != "" {
|
|
|
+ hms1 = strings.ReplaceAll(hms1, "时", ":")
|
|
|
+ hms1 = strings.ReplaceAll(hms1, "分", ":")
|
|
|
+ hms1 = strings.ReplaceAll(hms1, "秒", "")
|
|
|
+ if arr := strings.Split(hms1, ":"); len(arr) == 3 {
|
|
|
+ h, m, s := arr[0], arr[1], arr[2]
|
|
|
+ return fillPrefix(h) + ":" + fillPrefix(m) + ":" + fillPrefix(s)
|
|
|
+ } else {
|
|
|
+ return "00:00:00"
|
|
|
+ }
|
|
|
}
|
|
|
- return ""
|
|
|
+ if hms2 := HMS_Reg2.FindString(hms); hms2 != "" {
|
|
|
+ arr := strings.Split(hms2, ":")
|
|
|
+ h, m, s := "", "", ""
|
|
|
+ if len(arr) == 3 {
|
|
|
+ h, m, s = arr[0], arr[1], arr[2]
|
|
|
+ } else if len(arr) == 2 {
|
|
|
+ h, m, s = arr[0], arr[1], "00"
|
|
|
+ } else {
|
|
|
+ return "00:00:00"
|
|
|
+ }
|
|
|
+ return fillPrefix(h) + ":" + fillPrefix(m) + ":" + fillPrefix(s)
|
|
|
+ }
|
|
|
+ return "00:00:00"
|
|
|
}
|
|
|
|
|
|
// 清洗时间
|
|
|
-func CleanTime(st string) int64 {
|
|
|
+func CleanTime(st string) string {
|
|
|
if st == "" || st == "无" {
|
|
|
- return 0
|
|
|
+ return ""
|
|
|
}
|
|
|
- //YYYY-MM-DD HH:MM:SS
|
|
|
- /*
|
|
|
- 2024-02-28 09:00:00
|
|
|
- 2024年3月4日 08:00:00
|
|
|
- 2024年03月01日08时00分00秒
|
|
|
- 2024年3月8日 17:00:00
|
|
|
- 2024年03月08日09时30分00秒
|
|
|
- */
|
|
|
st = strings.ReplaceAll(st, ":", ":")
|
|
|
ymd, hms := convertYMD(st), convertHMS(st)
|
|
|
+ if ymd == "" {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
st = ymd + " " + hms
|
|
|
- t, _ := time.ParseInLocation(ul.TimeLayout, st, time.Local)
|
|
|
- return t.Unix()
|
|
|
+ return st
|
|
|
+ //t, _ := time.ParseInLocation(ul.TimeLayout, st, time.Local)
|
|
|
+ //return t.Unix()
|
|
|
}
|
|
|
|
|
|
// 清洗折扣率
|