前日タイプと後日付タイプの送信と処理

 最近、Element-UIコンポーネントを使用して日付選択コントロールを作成し、日付コントロールを介して有効な日付と時刻を選択し、それをバックエンドに渡します。バックエンドは対応する処理を実行します。

しかし、ここにいくつかの頭痛の種があります:

問題1:DateTimePickerコントロールによって表示される形式が正しくない

1つ目は、Element-UIの日付と時刻コンポーネントのデフォルトの時刻形式がyyyy-MM-dd HH:mm:ssの形式ではないことです。まず、DatetimePickerコントロールのプロパティでその形式を変更する必要があります。

format属性:入力ボックスのフォーマットを指定します

value-format属性:バインドされた値の形式を指定します

例:

 <span style="left:-100px; position:relative">
          <span class="demonstration" style='margin-right:10px'>开始日期</span>
          <el-date-picker v-model="value1" type="datetime" placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
            value-format="yyyy-MM-dd hh:mm:ss">
          </el-date-picker>
        </span>
        <span style="left:-70px; position:relative">
          <span class="demonstration" style='margin-right:10px'>截止日期</span>
          <el-date-picker v-model="value2" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"
            format="yyyy-MM-dd hh:mm:ss">
          </el-date-picker>
        </span>

問題2:フロントエンドからバックエンドに送信される日付形式は正しいが、バックエンドがそれを受信した後、形式が変更された

フロントエンドJSのデータタイプが弱いことは誰もが知っているので、日付がバックエンドに渡されると、文字列として渡されますが、バックエンドのエンティティレイヤーは受信する日付タイプを定義します

エンティティ:

public class Line {
    private String userName;
    //日期时间格式的处理

//   @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//   @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String onTime;
    //日期时间格式的处理

//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private String downTime;
    private Double spendCash;

上記のコードでは、2つの注釈があることがわかります。これらの2つの注釈は、前後の日付をインタラクティブに送信するのに役立ちます。

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")的作用:

日付はフロントエンドのjspページで入力されることがあり、バックエンドに送信されるときに、文字列タイプで受け取るのではなく、日付タイプに直接変換したいと考えています(ここでは、データタイプを使用してエンティティを受け取ります)。次に、simpleDateFormatを使用してフォーマットを変換します。これは面倒で、コードが煩雑になります。Springには、記述が非常に面倒な型コンバーターが用意されています。要件は非常に単純です。フレームワークは、型を自動的に変換するのに役立ちます。手動変換の代わりに、このコンテキストでは、@ DateTimeFormatアノテーションを使用できます

 

さらに、データベースから日付を照会するという要件もあり、日付を文字列タイプに自動的に変更したい場合は、@ JsonFormatアノテーションを使用できます。

@JsonFormat UTC(米国)から8時間離れているため、GMT + 8を追加することを忘れないでください。したがって、8を追加する必要があります。

 

さらに、単純で大雑把な方法があります。つまり、エンティティは受信にDataタイプを使用せず、受信にStringタイプも使用するため、タイプ変換の必要はありません。

 

おすすめ

転載: blog.csdn.net/qq_30631063/article/details/105898900