sql >> データベース >  >> NoSQL >> MongoDB

mongodbからdatetiimeを取得するにはどうすればよいですか?データをjDateChosserJavaと比較する

    あなたのフォーマット、YYYY-mm-dd'T'HH:MM:ss'Z' 正しくありません。この形式で間違っていることをすべて話し合いましょう。

    1. Yを使用しました yの代わりに : 記号Y Week yearに使用されます y Yearに使用されます 。 year-of-の違いを確認してください時代と週ベースの年? 詳細については、こちらをご覧ください。
    2. mmを使用しました 月の場合: 月の正しい記号はMです。 。
    3. MMを使用しました 数分間: 分の正しい記号はmです。 。
    4. Zを同封しました 一重引用符で囲みます: シンボルZ Time zoneに使用されます 一方、'Z' 文字リテラルに他なりません。おそらく、+00:00のタイムゾーンオフセットをフォーマットする必要があります Zとして このためには、実際にはXを使用する必要があります 。

    したがって、正しい形式は次のとおりです。

    yyyy-MM-dd'T'HH:mm:ssX
    

    推奨される形式のデモ:

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    
    public class Main {
        public static void main(String[] args) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
            Calendar calendar = Calendar.getInstance();
            Date date = calendar.getTime();
            System.out.println(sdf.format(date));
        }
    }
    

    出力:

    2021-01-14T08:13:01Z
    

    java.utilの日時APIに注意してください およびそれらのフォーマットAPI、SimpleDateFormat 古く、エラーが発生しやすいです。それらの使用を完全に停止し、最新の日時API

    • 何らかの理由で、Java6またはJava7に固執する必要がある場合は、ThreeTen-バックポート java.timeのほとんどをバックポートします Java6および7の機能。
    • Androidプロジェクトで作業していて、Android APIレベルがまだJava-8に準拠していない場合は、脱糖によって利用可能なJava8以降のAPI およびAndroidプロジェクトでThreeTenABPを使用する方法> 。

    Date#toInstant java.util.Dateを変換します java.time.Instantへのオブジェクト(レガシータイプ) (モダンタイプ)。 Instant タイムライン上の瞬間的なポイントを表し、ほとんどのJSON操作に十分なはずです。 Instant#toString ISO-8601標準 に準拠したUTCタイムゾーンオフセットを含む日時文字列を返します 。

    デモ:

    import java.time.Instant;
    import java.time.OffsetDateTime;
    import java.time.ZoneOffset;
    import java.time.format.DateTimeFormatter;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    
    public class Main {
        public static void main(String[] args) {
            Calendar calendar = Calendar.getInstance();
            Date date = calendar.getTime();
            Instant instant = date.toInstant();
            // Print the value of instant#toString
            System.out.println(instant);
    
            OffsetDateTime odt = instant.atOffset(ZoneOffset.UTC);
            System.out.println(odt);
            // Custom format
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
            System.out.println(dtf.format(odt));
        }
    }
    

    出力:

    2021-01-14T08:28:35.659Z
    2021-01-14T08:28:35.659Z
    2021-01-14T08:28:35Z
    



    1. Kubernetesクラスターのmongodbサービスに接続できません

    2. MongoDBを使用したSpringDataReactive Repositories

    3. WindowsにphpMongoドライバーをインストールする

    4. mongodb cppドライバー(ubuntuサーバーx64)にlboost_thread-mtがありません