亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么當應用程序在我的計算機上運行時 System.DateTime.Now 工作

為什么當應用程序在我的計算機上運行時 System.DateTime.Now 工作

C#
拉丁的傳說 2022-12-24 12:31:17
當應用程序在存儲它的計算機上運行時,它會加載時間,但是,當它通過工作組加載時,在另一臺計算機上它不會加載時間(即使其他一切都正常工作)。我已經為 Windows 使用 Unity 和 C# 制作了一個應用程序,它需要能夠從系統加載今天的日期,并且當應用程序在存儲它的計算機上運行時它可以工作(應用程序不需要安裝),但是,當我嘗試從另一臺計算機通過工作組運行它時,它不會加載時間。我已經測試了應用程序中的所有其他內容,唯一似乎出現故障的函數是 DateTime.Now 函數。我還嘗試用 DateTime.Today、System.DateTime.Now 和其他一些變體替換它,但都沒有成功。public class TestTodayDate : MonoBehaviour{    public Text text;    void Start()    {        DateTime today = DateTime.Now;        string[] day = today.ToString("d").Split('/');        text.text = $"{day[1]}.{day[0]}.{day[2]}";    }}這是預期的結果,也是我在本地運行應用程序時得到的結果。這是我在工作組上的兩臺不同計算機上運行它時得到的結果。
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

"d"格式字符串使用系統級配置的短日期字符串格式。個人可以根據需要在他們的系統上更改此格式。因此,如果您需要依賴以某種方式查看的結果,則不應使用"d"格式字符串。


相反,您可能會想這樣做:


void Start()

{

    DateTime today = DateTime.Now;

    string[] day = today.ToString("dd/MM/yyyy").Split('/');

    text.text = $"{day[1]}.{day[0]}.{day[2]}";

}

但這也不完全正確。在 .Net 日期格式字符串中,該/字符具有特殊含義,它代替系統日期分隔符。同樣,根據操作系統中存在的文化或自定義設置,此值可能與您的預期不同。


你真正應該做的是:


void Start()

{

    text.text = DateTime.Now.ToString("d.M.yyyy");

}

這將始終提供預期值(盡管我不得不猜測日期格式,無論您是否期望0在月初看到領先),并且它將為您節省一些創建數組和中間字符串的內存分配.


查看完整回答
反對 回復 2022-12-24
  • 1 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號