亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為 DynamoDB 設置時區在 spring 數據中自動生成時間戳

如何為 DynamoDB 設置時區在 spring 數據中自動生成時間戳

三國紛爭 2023-03-31 14:26:40
我正在嘗試在 dynamoDb 表中添加時間屬性。我在我的日期容器上添加了 @DynamoDBAutoGeneratedTimestamp 注釋,但它似乎選擇 00:00 作為默認時區。@get:DynamoDBAutoGeneratedTimestamp(strategy=DynamoDBAutoGenerateStrategy.CREATE)    var createdAt: String? = null    @get:DynamoDBAutoGeneratedTimestamp(strategy=DynamoDBAutoGenerateStrategy.ALWAYS)    var updateAt: String? = null
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

無法為 設置區域偏移量@DynamoDBAutoGeneratedTimestamp,但可以創建您自己的@DynamoDBAutoGenerator實現以及相應的注釋。


以下是您將如何在 Java 中完成它。(看起來您使用的是 Kotlin,但轉換它應該很簡單。)


@DynamoDBAutoGenerated(generator=AutoGeneratedTimestampWithOffset.Generator.class)

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD})

public @interface AutoGeneratedTimestampWithOffset {


    /**

     * See {@link ZoneOffset#of(String)} for valid values.

     */

    String offset();

    DynamoDBAutoGenerateStrategy strategy() default DynamoDBAutoGenerateStrategy.ALWAYS;


    public class Generator implements DynamoDBAutoGenerator<String> {

        private final String offset;

        private final DynamoDBAutoGenerateStrategy strategy;


        public Generator(final Class<String> targetType, final AutoGeneratedTimestampWithOffset annotation) {

            this.offset = annotation.offset();

            this.strategy = annotation.strategy();

        }


        @Override

        public DynamoDBAutoGenerateStrategy getGenerateStrategy() {

            return strategy;

        }


        @Override

        public final String generate(final String currentValue) {

            return OffsetDateTime.ofInstant(Instant.now(), ZoneOffset.of(offset)).toString();

        }

    }

}

在你的@DynamoDBTable課堂上,你會像這樣使用這個注解:


@get:AutoGeneratedTimestampWithOffset(offset="+05:30", strategy=DynamoDBAutoGenerateStrategy.CREATE)

var createdAt: String? = null


@get:AutoGeneratedTimestampWithOffset(offset="+05:30", strategy=DynamoDBAutoGenerateStrategy.ALWAYS)

var updateAt: String? = null


查看完整回答
反對 回復 2023-03-31
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號