Custom Date Format এবং Time Zone কনফিগার করা

@JsonFormat Annotation - জ্যাকসন অ্যানোটেশন (Jackson Annotations) - Java Technologies

308

Jackson লাইব্রেরি ব্যবহার করে Date এবং Time ফরম্যাট কাস্টমাইজ করা এবং টাইমজোন সেট করা অনেক গুরুত্বপূর্ণ। এটি @JsonFormat অ্যানোটেশন দ্বারা সহজে করা যায়, যা JSON থেকে Java Object এবং Java Object থেকে JSON এ রূপান্তরের সময় তারিখ এবং সময়ের আউটপুট কাস্টমাইজ করতে সাহায্য করে।

এছাড়া, Spring Boot প্রজেক্টে আপনি গ্লোবালি ডেটা ফরম্যাট এবং টাইমজোন কনফিগারেশন করতে পারেন।


@JsonFormat অ্যানোটেশন

@JsonFormat অ্যানোটেশন ব্যবহার করে আপনি Date, Time এবং Number ফরম্যাট কাস্টমাইজ করতে পারেন। এটি pattern, timezone, এবং shape প্যারামিটারগুলি গ্রহণ করে, যা আপনাকে JSON আউটপুটের ফরম্যাট নিয়ন্ত্রণ করতে সাহায্য করে।


@JsonFormat প্যারামিটারসমূহ

প্যারামিটারবর্ণনা
shapeআউটপুট ডেটার কাঠামো নির্ধারণ (যেমন: STRING, NUMBER)
patternকাস্টম প্যাটার্ন নির্ধারণ (যেমন: yyyy-MM-dd)
timezoneনির্দিষ্ট টাইমজোন প্রয়োগ (যেমন: UTC, Asia/Dhaka)
localeনির্দিষ্ট লোকেল (ভাষা এবং দেশ) প্রয়োগ করা

Custom Date Format এবং Time Zone কনফিগার করার উদাহরণ

১. Date এবং Time Formatting

Date বা Time ফরম্যাট কাস্টমাইজ করতে @JsonFormat অ্যানোটেশন ব্যবহার করুন। ধরুন, আপনি JSON ডেটাতে তারিখ/সময় ফরম্যাট কাস্টমাইজ করতে চান:

import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;

public class Event {
    private String name;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Dhaka")
    private Date eventDate;

    // Constructors
    public Event(String name, Date eventDate) {
        this.name = name;
        this.eventDate = eventDate;
    }

    // Getters and Setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getEventDate() {
        return eventDate;
    }

    public void setEventDate(Date eventDate) {
        this.eventDate = eventDate;
    }
}

Serialization Example:

import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Date;

public class JsonFormatExample {
    public static void main(String[] args) throws Exception {
        Event event = new Event("Meeting", new Date());

        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(event);

        System.out.println(json);
    }
}
JSON Output:
{
  "name": "Meeting",
  "eventDate": "2024-12-21 15:30:00"
}

এখানে, আমরা yyyy-MM-dd HH:mm:ss প্যাটার্ন ব্যবহার করেছি, এবং Asia/Dhaka টাইমজোনে সময় ফরম্যাট করেছি।


২. TimeZone এবং Locale কনফিগার করা

Jackson ব্যবহার করে TimeZone এবং Locale সেট করা খুবই সহজ। timezone এবং locale প্যারামিটার ব্যবহার করে তা কাস্টমাইজ করা যায়। নিচের উদাহরণটি দেখুন:

import com.fasterxml.jackson.annotation.JsonFormat;

public class EventWithTimeZone {
    private String name;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
    private Date eventDate;

    // Constructors
    public EventWithTimeZone(String name, Date eventDate) {
        this.name = name;
        this.eventDate = eventDate;
    }

    // Getters and Setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getEventDate() {
        return eventDate;
    }

    public void setEventDate(Date eventDate) {
        this.eventDate = eventDate;
    }
}

Serialization Example:

import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Date;

public class JsonFormatTimeZoneExample {
    public static void main(String[] args) throws Exception {
        EventWithTimeZone event = new EventWithTimeZone("Conference", new Date());

        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(event);

        System.out.println(json);
    }
}
JSON Output:
{
  "name": "Conference",
  "eventDate": "2024-12-21 10:30:00"
}

এখানে timezone = "UTC" ব্যবহার করা হয়েছে, তাই যেকোনো স্থানীয় সময়ের তুলনায় UTC টাইমজোন অনুযায়ী ডেটা সিরিয়ালাইজ হবে।


Spring Boot গ্লোবালি Date Format এবং Time Zone কনফিগার করা

Spring Boot প্রজেক্টে Jackson ব্যবহার করে গ্লোবালি Date format এবং TimeZone কনফিগার করার জন্য application.properties বা application.yml ব্যবহার করা যায়।

application.properties এ কনফিগারেশন:

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=Asia/Dhaka

এই কনফিগারেশনটির মাধ্যমে আপনার Spring Boot অ্যাপ্লিকেশন গ্লোবালি yyyy-MM-dd HH:mm:ss ফরম্যাট এবং Asia/Dhaka টাইমজোন ব্যবহার করবে।

Spring Configuration ক্লাস:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JacksonConfig {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        // Java 8 Date/Time API মডিউল নিবন্ধন
        objectMapper.registerModule(new JavaTimeModule());
        // টাইমজোন সেট করা
        objectMapper.setTimeZone(java.util.TimeZone.getTimeZone("Asia/Dhaka"));
        // ডেটা টাইম স্ট্যাম্প হিসেবে না লেখার জন্য
        objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        return objectMapper;
    }
}

এই কনফিগারেশনটির মাধ্যমে গ্লোবালি Asia/Dhaka টাইমজোন এবং yyyy-MM-dd HH:mm:ss ফরম্যাট নিশ্চিত করা যায়।


Spring Boot এ @JsonFormat ব্যবহার:

Spring Boot প্রকল্পে @JsonFormat অ্যানোটেশনটি নির্দিষ্ট ফিল্ডে টাইমজোন এবং ডেটা ফরম্যাট কাস্টমাইজ করতে ব্যবহার করতে পারেন।

@JsonFormat গ্লোবালি কনফিগার করা:

import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;

public class Event {
    private String name;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Dhaka")
    private Date eventDate;

    // Getters and Setters
}

এখানে Asia/Dhaka টাইমজোনের সময় এবং yyyy-MM-dd HH:mm:ss প্যাটার্ন অনুযায়ী ডেটা সিরিয়ালাইজ করা হবে।


  1. @JsonFormat ব্যবহার করে আপনি JSON Serialization এবং Deserialization এর সময় তারিখ, সময়, এবং টাইমজোন কাস্টমাইজ করতে পারেন।
  2. TimeZone এবং Date Format গ্লোবালি কনফিগার করা Spring Boot অ্যাপ্লিকেশনে সহজ এবং কার্যকরী।
  3. @JsonFormat এবং Spring Boot Configuration ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের ডেটা ফরম্যাট এবং টাইমজোন নিয়ন্ত্রণ করতে পারবেন।
  4. @JsonFormatpattern এবং timezone প্যারামিটার ব্যবহার করে কাস্টম ডেটা ফরম্যাট তৈরি করা সহজ।

এটি Jackson এবং Spring Boot-এর মাধ্যমে তারিখ, সময় এবং টাইমজোন কাস্টমাইজেশনের একটি শক্তিশালী পদ্ধতি।

Content added By
Promotion

Are you sure to start over?

Loading...