2017-07-20 4 views
1

私はxamarinフォームアプリケーションを開発しています。私は現在の日付時刻を画像のファイル名として割り当てています。現在、画像は「7202017 53150 PM.jpg」として保存されています。私はそれがこのように救われたいです"720201753150PM.jpg"。どのように日付と時間の間のスペースを削除できますか?C#でDateTimeからスペースを削除するには?

私は以下のように試しましたが、うまくいかなかった。あなたは文字列として新しい値を割り当てる必要が

string _imagename = DateTime.Now.ToString(); 
_imagename.Replace(" ", string.Empty); 
+5

:そして、あなたはReplace方法に建て適用することによって、それを行うことができます。 –

+4

'" 7202017 53150 PM.jpg "'は、 'DateTime.Now.ToString()'の結果になることはありません。実際のコードを常に表示してください。スペースを置き換える代わりに、フォーマットを変更して最初に正しい文字列を生成してみませんか? –

答えて

6

実はString.Replace()は、現在のインスタンス内の指定した文字列のすべての出現は、指定された別のに置き換えた新しい文字列を返します。 string(つまり、実際の文字列は変更されません)。結果を別の変数に代入する必要があります。そして、そこの置換操作を実行します。

しかし、なぜあなたは別の交換のために行くのですか? whynotを使用して.ToString()次のような?

string format = "Mddyyyyhhmmsstt"; 
string _imagename = String.Format("{0}.jpg",DateTime.Now.ToString(format)) 
+1

私はOPのフォーマットは "Mddyyyy ..."だと思います。最初の数字は720なので、私は他のどのようなフォーマットであっても構わないと思います... – Chris

+0

'DateTime.Now.ToString(" MMddyyyyhhmmsstt ")' 。書式文字列は1桁目を月として取ります。 –

+0

@TetsuyaYamamoto:少し変化しますが、フォーマットは '' Mddyyyyhhmmsstt ''となります。なぜなら、月が' 07'ではなく '07' –

2

は不変である:

string _imagename = DateTime.Now.ToString(); 

_imagename = _imagename.Replace(" ", string.Empty); 
+1

私は個人的に私はupvotedしかし、おそらくdownvoterは文字列が後で削除されたスペースではなくスペースなしで生成されている必要があると思う。これは質問に答えてくれるものであり、彼に何が間違っているのか正確にOPに伝えます。 – Chris

+0

downvotedしていません。しかし、スペースを空文字列に置き換える方法(たくさんの重複を見つけることができる)を示す代わりに、OPは最初に間違った日時文字列を作成するべきではありません。 –

+0

ありがとう、私はサーバーにイメージをアップロードするアプリケーションを開発しましたが、スペースを削除する方法はありません..lol。 – batwing

0

ファイル名で注文したい場合は、私がyyyyMMddHHmmssのような表記を使用することをお勧めしたいです。そうすることで、日時が増えるとソート順も増えます。

それ以外の文字列はc#では不変です。したがって、Replaceを呼び出しても元の文字列は変更されません。 @RomanoZumbéが指摘したように、結果を変数に代入する必要があります。

あなただけの(ソートの提案を含む)、次のような書式文字列を使用することができます

string imagename = $"{DateTime.Now:yyyyMMddHHmmss}.jpg"; 

それ以外の場合は、次のようになります。

string imagename = $"{DateTime.Now:Mddyyyyhmmsstt}.jpg"; 
1

これは私が知っている最速の方法です:

Regex.Replace(_imagename, @"\s+", "") 

あなたの文字列が悪いかどうかを調べるには、スペースを空の文字列に置き換えることもお勧めします。 `二行目のために、それは` _imagename = _imagename.Replace(」」、String.Emptyを)する必要があります

string _imagename = DateTime.Now.ToString(); 

    _imagename = _imagename.Replace(" ", string.Empty); 
+0

ここに何か不足しているかもしれませんが、2番目の提案は、OPが示していない元の質問とどのように違いますか? – PaulF

+0

@PaulFありがとうPaul –

関連する問題