3 回答

TA貢獻1790條經驗 獲得超9個贊
您需要了解 aDateTime只是表示時間點的對象。它不存儲有關其格式化方式的信息。以下是相同的DateTime,只是格式不同:
05/16/2018
5/16/2018
因為它們代表同一個時間點。
這就像行為方式int一樣。它也會“刪除你的前導零”:
int a = 05;
Console.WriteLine(a); // just prints "5".
因為05和5是相同的int,就目前int而言。
是否在 a 中添加前導零DateTime取決于您如何格式化它。它們僅在您將您的轉換DateTime為字符串時出現。05/16/2018并且5/16/2018是不同string的。
如果你想要前導零,只需指定一個日期格式,就像dd/MM/yyyy你想輸出它一樣:
Console.WriteLine(dateTime.toString("dd/MM/yyyy")); // prints leading zeroes!

TA貢獻1860條經驗 獲得超8個贊
首先,您的字符串DateTime
格式(MM/dd/yyyy
)令人困惑!它將為字符串 DataTime 值(如"05/08/2018"
. 所以你必須使用ParseExact
而不是Parse
如下:
DateTime dt = DateTime.ParseExact(datetime,"MM/dd/yyyy", CultureInfo.InvariantCulture);
它給出的輸出為 2018 年 5 月 16 日,但我需要它作為 2018 年 5 月 16 日。那么,我該如何實現這個結果呢?
您可以簡單地實現這一點,我將您的機器DateTime
格式更改為前導零DataTime
格式!因為默認情況下 C#DateTime
采用機器格式的Datatime
格式。
好吧,我還檢查了測試控制臺應用程序,以確認如果您的機器格式包含前導零,則轉換后的DateTime
可以包含前導零,而無需將其轉換為字符串。DateTime

TA貢獻1802條經驗 獲得超6個贊
"5/16/2018"
是字符串表示 od DateTime 值。如果要以前導零輸出,可以使用自定義格式:
dt.ToString("dd/MM/yyyy");
- 3 回答
- 0 關注
- 222 瀏覽
添加回答
舉報