提交 2efa54df authored 作者: mooncake's avatar mooncake

update

上级 682d28fb
......@@ -2,12 +2,54 @@ package xtime
import (
"encoding/json"
"fmt"
"log"
"os"
"testing"
"time"
"gopkg.in/yaml.v3"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
func TestDateTime_Scan1(t *testing.T) {
type AppAli struct {
ID int64 `gorm:"id"`
}
var rs []*AppAli
begin := TodayBegin()
end := TodayEnd()
if e := conn().Raw(`select * from app_ali where created_at >= ? and created_at < ? `, begin, end).Scan(&rs).Error; e != nil {
fmt.Println(e.Error())
}
fmt.Println(len(rs))
for _, r := range rs {
fmt.Println(r.ID)
}
}
func conn() *gorm.DB {
newLogger := logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer(日志输出的目标,前缀和日志包含的内容)
logger.Config{
SlowThreshold: time.Second, // 慢SQL阈值
LogLevel: logger.Info, // 日志级别
Colorful: true, // 禁用彩色打印
},
)
dsn := "root:123456@tcp(127.0.0.1:30006)/devops?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: newLogger,
})
if err != nil {
log.Fatal("数据库连接失败:", err)
}
log.Println("数据库连接成功!")
return db
}
// TestDateTime_Scan 测试数据库扫描功能
func TestDateTime_Scan(t *testing.T) {
tests := []struct {
......
......@@ -215,6 +215,10 @@ func (t Time) Second() int {
return t.Time().Second()
}
func (t Time) Nanosecond() int {
return t.Time().Nanosecond()
}
// Before 检查当前时间是否在另一个时间之前
func (t Time) Before(other Time) bool {
return t.Time().Before(other.Time())
......@@ -305,3 +309,15 @@ func (t *Time) UnmarshalCSV(csv string) error {
return fmt.Errorf("无法解析时间格式: %s", csv)
}
func (x *Time) ToDuration() time.Duration {
hours := x.Hour()
minutes := x.Minute()
seconds := x.Second()
nanoseconds := x.Nanosecond()
return time.Duration(hours)*time.Hour +
time.Duration(minutes)*time.Minute +
time.Duration(seconds)*time.Second +
time.Duration(nanoseconds)
}
......@@ -2,6 +2,7 @@ package xtime
import (
"encoding/json"
"fmt"
"testing"
"time"
......@@ -240,6 +241,22 @@ func TestTime_YAML(t *testing.T) {
}
}
func TestTime_ToString1(t *testing.T) {
nt := Time(time.Now())
fmt.Println(nt)
fmt.Println(nt.Time().Format(time.RFC3339))
}
func TestTime_ToString2(t *testing.T) {
nt := DateTime(time.Now())
fmt.Println(nt)
fmt.Println(nt.Format(time.RFC3339))
}
func TestTime_ToString3(t *testing.T) {
nt := Date(time.Now())
fmt.Println(nt)
fmt.Println(nt.Format(time.RFC3339))
}
// TestTime_String 测试字符串表示
func TestTime_String(t *testing.T) {
tests := []struct {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论