2015-10-01 102 views
-2

我有以下簡單的例子:C#是有可能減去一天的日期時間格式

string dt = DateTime.Now.ToString("yyyy-MM-dd hh.mm.ss"); 

我不能改變DateTime.Now,但我可以改變日期時間格式yyyy-MM-dd hh.mm.ss。在此示例之後,結果必須是今天的日期,但除了日期(年,月,小時,分鐘和秒)之外,我需要使用相同的參數獲取昨天的日期。例如。 2015-08-23 12.09.59必須是2015-08-22 12.09.59。那麼是否可以在日期時間格式中使用一些「 - 」運算符或其他內容來實現結果?

+1

'我可以」不要改變DateTime.Now,但是爲什麼? – Sachin

+0

因爲我在圖書館工作,我可以設置它只有日期時間模式 – Mia

+0

因此,只需在日期時間分析中包裝Arghya C的答案? (絕對不是首選) – Sayse

回答

2

例如, 2015-08-23 12.09.59必須是2015-08-22 12.09.59。那麼 可能使用一些「 - 」運算符或其他內部的 datetime格式來實現結果嗎?

不,這在DateTime格式中是不可能的。你不能改變任何事情。因爲它僅用於以字符串格式顯示日期的定義格式。任何加法或減法只能在按照「Arghya C」的建議將其轉換爲字符串格式之前完成。

您能否解釋一下您的限制,以便我們解決您的問題。

+0

我正在使用庫,我可以設置爲只有日期時間模式,所以感謝您的回覆 – Mia

7

如果你想昨天的日期,你可以做到這一點

string dt = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd hh.mm.ss"); 

DateTime.AddDays()讓你增加的天數,積極爲將來的日期,負過去的日期。

+0

我只能更改日期時間格式 – Mia

+4

爲什麼?你爲什麼不能輸入? –

+0

因爲我正在與圖書館合作,所以我可以設置爲只有日期時間模式 – Mia

1

如果你只能影響日期時間模式,除使用roundtrip format並解析返回的字符串返回的日期時間,添加計算和格式化成所需的格式:

var dateTimeString = badLibrary.GetDateTime("o"); 
var dateTime = DateTime.Parse(dateTimeString, null, DateTimeStyles.RoundtripKind); 
var newDateTime = dateTime.AddDays(-1); 

return newDateTime.ToString("yyyy-MM-dd hh.mm.ss"); 
+0

如果庫返回基於指定格式的日期的字符串表示形式,則應該適用於op。如果這個方法是無效的,那就沒有辦法了! –