簡體   English   中英

如何轉換小數? 串起來?

[英]How can I convert decimal? to string?

我正在用C#語言編寫一個ASP.NET MVC程序,並且有一個從數據庫中獲取的日期,但是該日期設置為十進制類型,因此無法更改。 我需要知道如何格式化小數使其看起來像20170415.00 04/15/2017而不是20170415.00

這就是在我的模型中聲明該列的方式。

public decimal? SIM2_DUE_DATE { get; set; }

我正在從數據庫中調用日期。 我有1000多個日期需要格式化。 我只是以那個為例,所以我不能專門格式化它。

您可以使用數學將“日期”轉換為DateTime類型。 首先將其分成以下部分:

var date = 20170415.00M;
var year = (int)date / 10000;
var month = (int) date / 100 % 100;
var day = (int)date % 100;

然后調用DateTime構造函數:

var dateTime = new DateTime(year, month, day);

您可以使用DateTime.ParseExact做到這一點:

string dueDate = SIM2_DUE_DATE.ToString("D"); // remove decimals
var parsedDate = DateTime.ParseExact(dueDate, "yyyyMMdd", CultureInfo.InvariantCulture); // parse the date and ensure it's in that specific format
var display = parsedDate.ToShortDateString(); // get the culture-specific date representation

請注意,如果保留小數,這將失敗

考慮您的日期為十進制值

decimal dtdec = 20170415.00M;

您別無選擇

                var newDate = DateTime.ParseExact(((Int64)dtdec).ToString(),
                                      "yyyyMMdd",
                                       System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(newDate.ToShortDateString());

要么

Console.WriteLine(DateTime.Parse(dtdec.ToString("####/##/##")));

要么

Console.WriteLine(dtdec.ToString("####/##/##"));
Decimal decimalDateValue = 20170105.00;
DateTime dateEquivalent = DateTime.MinValue;
DateTime.TryParse(decimalDateValue.ToString(),out dateEquivalent);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM