util.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package util
  2. import (
  3. "fmt"
  4. "strconv"
  5. "strings"
  6. "time"
  7. "app.yhyue.com/moapp/jybase/mongodb"
  8. "go.mongodb.org/mongo-driver/bson/primitive"
  9. "gopkg.in/mgo.v2/bson"
  10. )
  11. func MongoId(t int64) primitive.ObjectID {
  12. id, _ := primitive.ObjectIDFromHex(fmt.Sprintf("%x0000000000000000", t))
  13. return id
  14. }
  15. func SpitObjectId(s string) string {
  16. sArr := strings.Split(s, `("`)
  17. s = strings.Split(sArr[1], `")`)[0]
  18. return s
  19. }
  20. // return ObjectID("6424fefc0000000000000000")
  21. func GetObjectId(timestamp int64) primitive.ObjectID {
  22. t := time.Unix(timestamp, 0)
  23. tid := bson.NewObjectIdWithTime(t)
  24. return mongodb.StringTOBsonId(SpitObjectId(tid.String()))
  25. }
  26. //
  27. func FormatDate(dateInt int64) string {
  28. // 将 int 类型的日期数字转换为时间对象
  29. dateStr := fmt.Sprintf("%d", dateInt)
  30. if len(dateStr) < 8 {
  31. return ""
  32. }
  33. year, err := strconv.Atoi(dateStr[:4])
  34. if err != nil {
  35. return ""
  36. }
  37. month, err := strconv.Atoi(dateStr[4:6])
  38. if month == 0 {
  39. month = 1
  40. }
  41. if err != nil {
  42. return ""
  43. }
  44. day, err := strconv.Atoi(dateStr[6:8])
  45. if err != nil {
  46. return ""
  47. }
  48. if day == 0 {
  49. day = 1
  50. }
  51. loc, _ := time.LoadLocation("Local")
  52. t := time.Date(year, time.Month(month), day, 0, 0, 0, 0, loc)
  53. // 将时间对象格式化为指定的字符串格式
  54. formattedLayout := "2006-01-02 15:04:05"
  55. return t.Format(formattedLayout)
  56. }