C#でUNIX時間を簡単に/簡単に解析する方法はありますか?私はその言語ではまったく新しいので、これが痛いほど明白な質問であれば、私はお詫び申し上げます。私は[エポックからの秒]の形式の文字列を持っています。[ミリ秒]。 C#でJavaのSimpleDateFormatに相当するものはありますか?C#でunix時間を解析する
答えて
最も簡単な方法は、のようなものを使用することが考えられます:
private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
...
public static DateTime UnixTimeToDateTime(string text)
{
double seconds = double.Parse(text, CultureInfo.InvariantCulture);
return Epoch.AddSeconds(seconds);
}
注意すべき
3つのこと:
- あなたの文字列ではなく、間違いなくフォーム「X.Y」のであれば上記のように「X、Y」あなたはことを確認するために、インバリアントカルチャを使用する必要があります「」小数点として解析されます
DateTime
コンストラクタでUTCを指定して、現地時刻ではないと確信させる必要があります。- .NET 3.5以降を使用している場合は、
DateTime
の代わりにDateTimeOffset
を使用することをおすすめします。
MSDN DateTime docsの場合は、また、TimeSpanを参照してください。
// First make a System.DateTime equivalent to the UNIX Epoch.
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
// Add the number of seconds in UNIX timestamp to be converted.
dateTime = dateTime.AddSeconds(numSeconds);
// Then add the number of milliseconds
dateTime = dateTime.Add(TimeSpan.FromMilliseconds(numMilliseconds));
// This is an example of a UNIX timestamp for the date/time 11-04-2005 09:25.
double timestamp = 1113211532;
// First make a System.DateTime equivalent to the UNIX Epoch.
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
// Add the number of seconds in UNIX timestamp to be converted.
dateTime = dateTime.AddSeconds(timestamp);
// The dateTime now contains the right date/time so to format the string,
// use the standard formatting methods of the DateTime object.
string printDate = dateTime.ToShortDateString() +" "+ dateTime.ToShortTimeString();
// Print the date and time
System.Console.WriteLine(printDate);
var date = (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))
.AddSeconds(
double.Parse(yourString, CultureInfo.InvariantCulture));
これは、DateTimeKindが指定されていないことになります。また、小数点のフォーマットを決定するためにローカルカルチャを使用します。 –
ああ、本当です。修正されます。ライブラリのために+1 –
これはa blog posting by Stefan Henkeからである:
private string conv_Timestamp2Date (int Timestamp)
{
// calculate from Unix epoch
System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
// add seconds to timestamp
dateTime = dateTime.AddSeconds(Timestamp);
string Date = dateTime.ToShortDateString() +", "+ dateTime.ToShortTimeString();
return Date;
}
これはC#の人にとって非常に一般的なことですが、そのためのライブラリはありません。
私はこのミニライブラリhttps://gist.github.com/1095252を作成して私の人生を(私もあなたも願っています)簡単にしています。
+1、いいです。 –
ここでは、便利な拡張メソッド
public static DateTime UnixTime(this string timestamp)
{
var dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return dateTime.AddSeconds(int.Parse(timestamp));
}
ようである私は、これはかなり古い質問です実現が、私はhas a method specifically for thisNodatime'sインスタントクラスを使用私の解決策を投稿したい考え出し。
Instant.FromSecondsSinceUnixEpoch(longSecondsSinceEpoch).ToDateTimeUtc();
私はたぶん一部の人々にとって重いかもしれません。依存関係の肥大化が大きな懸念事項ではない私のプロジェクトでは、自分自身を維持するのではなく、維持されているライブラリソリューションに頼っています。
- 1. Azureストリーム解析でUnix時間を日付に変換する
- 2. ジョーダ時間、時間と時間を同時に解析する
- 3. 時間解析(フレックス)
- 4. ポータブルC++で時間文字列を解析する
- 5. C#でのUNIX時間変換
- 6. Joda時間を使用して日時を解析するパターン
- 7. actionscript 3でxml解析時間を計算する方法は?
- 8. Ical解析Outlookで新しい時間を提案する
- 9. 構文解析時間文字列(MM:SS.msec)
- 10. 相対時間を解析する方法は?
- 11. パンダread_csv:解析する時間フィールドを正しく
- 12. ジョーダ時間でタイムゾーンの日付を解析できません
- 13. UNIXの番号のファイルの解析
- 14. mysql - unix時間とdatetime
- 15. C#コードで解析/リファクタリングするC#コード
- 16. 時間を解析iOSのNSDateFormatterができ、適切
- 17. UNIXでの24時間形式の印刷時間
- 18. Unix時間から週まで
- 19. Unixでのファイル作成時間
- 20. C#でXMLファイルを解析する
- 21. JSONをC#で解析する
- 22. C++でJavaソースコードを解析する
- 23. C#でXMLを解析する
- 24. C#でテキストファイルを解析する方法
- 25. C#、XmlDocument.LoadXmlでWebページを解析する
- 26. C++で「引数」を解析する
- 27. スクリプト言語でC#を解析する
- 28. C++でテンプレートファイルを解析する
- 29. Objective-CでVCALENDAR(ics)を解析する
- 30. Objective-CでJSONを解析する
あなたの投稿の編集版は問題ありません。しかし、リンクされたMSDNページにはUNIXタイムスタンプのサンプルがなく、DateTimeにはそのページで見つけられた組み込み関数もないため、最初のバージョンは本当に役に立たなかった。答えを編集したので、他のものとまったく同じです。 – OregonGhost