格式化 Azure SDK 的 golang 時間
php小編西瓜為您介紹如何格式化Azure SDK的golang時間。在使用Azure SDK進行開發時,經常會遇到需要格式化時間的情況。 Golang提供了一些內建的時間格式化方法,但它們在Azure SDK中可能無法正常運作。為了解決這個問題,我們需要使用自訂的方法來格式化時間。接下來,讓我們一起來看看如何使用golang來格式化Azure SDK中的時間。
問題內容
考慮以下 golang
today := time.Now().Format("2006-01-02T03:04:05.9999999Z") t, _ := time.Parse(time.RFC3339Nano, today)
登入後複製
為什麼這不等於更簡單的
t := time.Now()
登入後複製
?
根據我目前的經驗,我想確認上面的程式碼是否等效(我認為是等效的),或者為什麼不是等效的。我還提供了有關我所嘗試的更多背景資訊。
我的完整儲存庫程式碼位於 GitHub 的 main.go
檔案中。但是,出於本問題的目的,讓我們專注於下面提供的程式碼片段。
sasToken, err := client.ListAccountSAS( ctx, resourceGroupName, storageAccountName, armstorage.AccountSasParameters{ KeyToSign: to.Ptr("key1"), SharedAccessExpiryTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, tomorrow); return t }()), Permissions: to.Ptr(armstorage.PermissionsR), Protocols: to.Ptr(armstorage.HTTPProtocolHTTPSHTTP), ResourceTypes: to.Ptr(armstorage.SignedResourceTypesS), Services: to.Ptr(armstorage.ServicesB), SharedAccessStartTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, today); return t }()), }, nil)
登入後複製
目前,此程式碼可以按預期運行。但是,當我將最後一行簡化為 t := time.Now()
時,會導致錯誤(如 Github Actions 的 Run job 所示)。
today 2023-09-18T07:54:42.6314723Z should be formatted as 2023-09-16T11:42:03.1567373Z tomorrow 2023-09-19T07:54:42.6314723Z should be formattes as 2023-09-17T11:42:03.1567373Z 2023/09/18 07:54:43 POST https://management.azure.com/subscriptions/***/resourceGroups/go-azure-sdk/providers/Microsoft.Storage/storageAccounts/golangazure/ListAccountSas -------------------------------------------------------------------------------- RESPONSE 400: 400 Bad Request ERROR CODE: InvalidValuesForRequestParameters -------------------------------------------------------------------------------- { "error": { "code": "InvalidValuesForRequestParameters", "message": "Values for request parameters are invalid: signedStart." } } -------------------------------------------------------------------------------- exit status 1
登入後複製
這讓我質疑為什麼等價性不成立,這與我最初的預期相反。
解決方法
此 API 期望時間會四捨五入到秒。所以嘗試這樣的事情:
... SharedAccessExpiryTime: to.Ptr(expiryTime.Round(time.Second)), ... SharedAccessStartTime: to.Ptr(startTime.Round(time.Second)), ...
登入後複製
以上是格式化 Azure SDK 的 golang 時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)