OS のユーザー設定から datetime.ToString("G") を使用して正しい時刻形式を取得できることはわかっていますが、先頭にゼロを追加して、日付/時刻が列に収まるようにしたいと考えています。(カスタム書式文字列を使用せずに) 先頭にゼロを付けて時刻を書式設定し、ユーザーが設定した書式で出力する方法はありますか?
質問する
466 次
4 に答える
1
「G」と「g」のパターンは、「d」(短い日付)のパターンに依存します。http://msdn.microsoft.com/en-us/library/8tfzyc64.aspxを参照してください。
に基づいてカスタムCultureInfo
またはオブジェクトを構築できますが、ソース カルチャから を直接コピーする代わりに、 "M" または "d" の単一文字出現箇所をそれぞれ "MM" および "dd" に置き換えます。DateTimeFormatInfo
CultureInfo.CurrentCulture
ShortDatePattern
于 2012-04-13T16:59:52.943 に答える
0
public static class DateTimeExtension
{
public static string GetLocaleDateTimeFormating(this DateTime T )
{
DateTimeFormatInfo sysUIFormat = CultureInfo.CurrentUICulture.DateTimeFormat;
string customFormat = sysUIFormat.ShortDatePattern.Replace("d", "dd").Replace("M", "MM");
customFormat += " " + sysUIFormat.ShortTimePattern.Replace("h", "hh").Replace("H", "HH");
string newDate = T.ToString(customFormat);
return newDate;
}
}
日時形式の値を取得するには
this.textBox1.Text = DateTime.Now.GetLocaleDateTimeFormating();
于 2012-04-13T22:42:23.993 に答える
0
デフォルトとカスタムのフォーマットを同時に持つことはできません。
あなたが望むのは、LongDatePatternを見て、特定のカルチャと対応する区切り記号の日/月/年の順序を把握し、それに基づいてカスタム文字列を作成することだと思います。
補足:
- 代わりに、結果の値をテキスト テーブルにスペースで揃えることを検討することもできます。
- 人間が消費する以外の目的でデータを使用する場合は、ユニバーサル形式 (潜在的に UTC 値を使用) を使用する方が適切です。
于 2012-04-13T16:58:54.840 に答える
0
ちょっと低額ですが、うまくいきます...
CultureInfo ci = CultureInfo.CurrentUICulture;
string longtimepattern = ci.DateTimeFormat.LongTimePattern;
longtimepattern = longtimepattern.Replace("m", "mm").Replace("mmmm", "mm") ;
longtimepattern = longtimepattern.Replace("h", "hh").Replace("hhhh", "hh");
longtimepattern = longtimepattern.Replace("H", "HH").Replace("HHHH", "HH");
longtimepattern = longtimepattern.Replace("s", "ss").Replace("ssss", "ss");
string shortdatepattern = ci.DateTimeFormat.ShortDatePattern;
shortdatepattern = shortdatepattern.Replace("d", "dd").Replace("dddd", "dd");
shortdatepattern = shortdatepattern.Replace("M", "MM").Replace("MMMM", "MM");
string datestr = new DateTime(obj.TestDateTime_utc).ToLocalTime().ToString(shortdatepattern + " " + longtimepattern);
于 2012-04-13T19:41:00.490 に答える