[英]How can I convert nullable datetime to decimal in c#
我正在嘗試轉換DateTime?
值到Decimal
。 (注意: DateTime?
是Nullable
)
從此格式4/1/2011 12:00:00 AM
到此格式( Decimal
類型) 20110401
。
如何做到這一點?
像這樣:
DateTime? myDateTime = GetDateTime();
Decimal.Parse(myDateTime.Value.ToString("yyyyMMdd"));
要么:
DateTime myDateTime = GetDateTime();
Decimal.Parse(myDateTime.ToString("yyyyMMdd"));
取決於DateTime
是否為Nullable
。
但是您實際上應該考慮用除Decimal
之外的其他方式存儲它,就像將電話號碼存儲為Long
, 您確實不應該這樣 。 主要是因為對以這種方式存儲的對象執行數學運算沒有意義。
您可以嘗試一下,
DateTime? dateTime = DateTime.Today;
string dateStr = dateTime.ToString("MMddyyyy");
decimal dec = Convert.ToDecimal(dateStr);
您可以通過一些數學來做到這一點:
DateTime? dt = DateTime.Today;
decimal d = dt.Value.Year*10000 + dt.Value.Month*100 + dt.Value.Day
...或將其轉換為:
DateTime? dt = DateTime.Today;
decimal d = Convert.ToDecimal(dt.Value.ToString("yyyyMMdd"));
如果您嘗試將此十進制值用於排序目的,請考慮也可以對字符串和DateTimes進行排序。
您可以使用ToBinary()
獲得DateTime
的二進制表示形式-然后可以將其分配給decimal
。
DateTime dt = DateTime.Now;
decimal dec = dt.ToBinary ();
這是最簡單的轉換,不涉及轉換為字符串然后返回。 如果您使用可為空的日期/時間,只需使用Value
屬性從中獲取實際值(進行錯誤檢查等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.