0

日付を GB 形式でブラウザに出力しています: 01/06/2012 15:50:01 -03:00(2012 年 6 月 1 日)

これは、サーバー上で C# を使用して実行されます。DateTimeOffset.ToString()

この日付で jQuery.timeago を使用したいと思います。jQuery.timeago は上記の日付を01/06/2012 15:50:01 -03:00(2012 年 1 月 6 日)として解析します。

1つの解決策は単に実行することですDateTimeOffset.ToString(formatStringHere)が、これはロケールに依存せずに機能する必要があるため、その解決策が機能するかどうかはわかりません.

4

2 に答える 2

1

DateTimeOffset.ToString()カルチャに依存しないパラメーターなしのメソッドに依存することはできません。ラウンドトリップ形式指定子 ("O"または"o") を使用して、タイムゾーン情報を保持しながら、ISO 8601 標準に従って (すべてのカルチャで正しく解析されるように) 日付を明確に書式設定することをお勧めします。

MSDN から:

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
DateTimeOffset dateOffset = new DateTimeOffset(date1, 
    TimeZoneInfo.Local.GetUtcOffset(date1));
Console.WriteLine(dateOffset.ToString("o"));
// Displays 2008-04-10T06:30:00.0000000-07:00 

timeagoのWeb サイトは、ISO 8601 をサポートしていることを示しているようです。

編集:"o"フォーマット指定子は、次のカスタム フォーマット文字列と同等です。

"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz"

精度をミリ秒に制限したい場合は、次のように調整できます。

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
DateTimeOffset dateOffset = new DateTimeOffset(date1, new TimeSpan(-7, 0, 0));
Console.WriteLine(dateOffset.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffzzz"));
// Displays 2008-04-10T06:30:00.000-07:00
于 2012-06-01T20:45:01.280 に答える
0

ISO-8601 標準: YYYY-MM-DDTHH:mm:ss.sssZ を使用して、C# および Jquery で日時を通信します。表示用と JQuery 用の 2 つの値を使用することを意味します。

于 2012-06-01T20:49:13.903 に答える