কিভাবে জাভায় টাইমস্ট্যাম্পকে ডেটে রূপান্তর করবেন?


105

dateজাভাতে গণনা পাওয়ার পরে আমি কীভাবে 'টাইমস্ট্যাম্প' কে রূপান্তর করব?

আমার বর্তমান কোডটি নিম্নরূপ:

public class GetCurrentDateTime {

    public int data() {
        int count = 0;
        java.sql.Timestamp timeStamp = new Timestamp(System.currentTimeMillis());
        java.sql.Date date = new java.sql.Date(timeStamp.getTime()); 
        System.out.println(date);
        //count++;

        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/pro", "root", "");

            PreparedStatement statement = con.prepareStatement("select * from orders where status='Q' AND date=CURDATE()");
            ResultSet result = statement.executeQuery();
            while (result.next()) {
                // Do something with the row returned.
                count++; //if the first col is a count.
            }
        } catch (Exception exc) {
            System.out.println(exc.getMessage());
        }

        return count;
    }
}

এটি আমার ডাটাবেস: এখানে চিত্র বর্ণনা লিখুন

এখানে আমি যে আউটপুট পেয়েছি তা 2012-08-07 0 ছিল, তবে সমমানের ক্যোয়ারী 3 ফিরে আসে কেন আমি 0 পাই?



আপনি কি আমাদের টেবিলের ডেটার মতো দেখতে উদাহরণগুলি প্রদর্শন করতে পারেন?
oldrinb

তারিখ (1344255451,1344255537,1344312502) এবং স্ট্যাটাসটি রয়েছে (প্রশ্ন, প্রশ্ন, প্রশ্ন)
কৃষ্ণ ভেনী


এই প্রশ্নের শিরোনাম একটি লাল দান । আসল সমস্যাটি হ'ল PreparedStatementভুল সিনট্যাক্সযুক্ত ব্যবহারের ভুল ব্যবহার । আপনি আপনার এসকিউএল স্ট্রিংয়ের পাঠ্যে জাভা ভেরিয়েবল এম্বেড করতে পারবেন না। পরিবর্তে, ?এসকিউএল স্ট্রিংটিতে এম্বেড করুন , তারপরে setপ্রস্তুতিমূলক স্টেটমেন্টে মানগুলি পাস করার পদ্ধতিগুলিকে কল করুন । সুজয়ের সঠিক উত্তর এবং টেনেরেক্সের মাধ্যমে উত্তর দেখুন
তুলসী বাউরক

উত্তর:


188

পরামিতি হিসাবে Dateস্ট্যাম্পের getTime()মান সহ একটি নতুন অবজেক্ট তৈরি করুন ।

এখানে একটি উদাহরণ রয়েছে (আমি বর্তমান সময়ের একটি উদাহরণ টাইমস্ট্যাম্প ব্যবহার করি):

Timestamp stamp = new Timestamp(System.currentTimeMillis());
Date date = new Date(stamp.getTime());
System.out.println(date);

@ vs06 আপনাকে কী মনে করে যে এটি হ্রাস করা হয়েছে? সর্বশেষতম জাভা 7 এবং 8 ডক্স উভয়ই অন্যথায় বলেছেন ( ডকস.ওরাকল.com/ জাভ্যাস / / / ডকস / এপি / জাভা / ইউটিলি / ডেট এইচটিএমএল#getTime () এবং ডক্স / জাভা / ইউটিলি / তারিখ। html#getTime-- )
অ্যালেক্স কোলেম্যান

4
টাইমস্ট্যাম্প সময় অঞ্চল এবং জেভিএম সময় অঞ্চল পৃথক হলে এটি একটি ভুল ফলাফল আনবে incor
রবার্ট মুগাত্তরভ

উদাহরণস্বরূপ কীভাবে এই ফর্ম্যাটটি 14.03.2014 এ পাবেন?
shurrok

6
আমি ঘৃণা করি যখন
পিপিএল

38
// timestamp to Date
long timestamp = 5607059900000; //Example -> in ms
Date d = new Date(timestamp );

// Date to timestamp
long timestamp = d.getTime();

//If you want the current timestamp :
Calendar c = Calendar.getInstance();
long timestamp = c.getTimeInMillis();

কেন আপনি এটি 1000 দিয়ে গুণ করলেন?
শার্পলেস 512

3
তারিখের সূচনাটি মিলিসেকেন্ডে এবং টাইমস্ট্যাম্পটি সেকেন্ডে! অন্য সমস্ত রূপান্তর জন্য একই চিন্তা! এটা ভালো ?
ভিনসেন্টলামৌতে



6

TL; ড

LocalDate.now( ZoneId.of( "Africa/Tunis" ) )
    .atStartOfDay( ZoneId.of( "Africa/Tunis" ) )
    .toEpochSecond()

...

LocalDate.now( ZoneId.of( "Africa/Tunis" ) )
    .plusDays( 1 )
    .atStartOfDay( ZoneId.of( "Africa/Tunis" ) )
    .toEpochSecond()

...

"SELECT * FROM orders WHERE placed >= ? AND placed < ? ; "

...

myPreparedStatement.setObject( 1 , start )
myPreparedStatement.setObject( 2 , stop )

java.time

আপনি আধুনিক জাভা.টাইম ক্লাসগুলি দ্বারা সরবরাহিত উত্তেজনাপূর্ণ পুরানো তারিখের সময় ক্লাসগুলি ব্যবহার করছেন ।

স্পষ্টতই আপনি কিছু সংখ্যার ধরণের কলামে আপনার ডাটাবেসে একটি মুহুর্ত সংরক্ষণ করছেন। ওটা দুর্ভাগ্যজনক. পরিবর্তে আপনার এসকিউএল-স্ট্যান্ডার্ডের মতো কোনও ধরণের কলাম ব্যবহার করা উচিত TIMESTAMP WITH TIME ZONE। তবে, এই উত্তরের জন্য, আমরা যা আছে তা নিয়ে কাজ করব।

যদি আপনার রেকর্ডগুলি মুহূর্তগুলিকে মিলিসেকেন্ডগুলির রেজোলিউশন সহ উপস্থাপন করে এবং আপনি একটি পুরো দিনের জন্য সমস্ত রেকর্ড চান তবে আমাদের সময়সীমা দরকার। আমাদের অবশ্যই একটি শুরুর মুহূর্ত এবং একটি থামার মুহূর্ত থাকা উচিত। আপনার ক্যোয়ারিতে কেবল একটি একক তারিখ-সময়ের মাপদণ্ড রয়েছে যেখানে এটির একটি জুটি হওয়া উচিত ছিল।

LocalDateবর্গ সময় অফ দিন এবং সময় জোন ছাড়া ছাড়া একটি তারিখ কেবল-মান প্রতিনিধিত্ব করে।

তারিখ নির্ধারণে একটি সময় অঞ্চল গুরুত্বপূর্ণ। যে কোনও মুহুর্তের জন্য, তারিখটি অঞ্চল অনুসারে বিশ্ব জুড়ে পরিবর্তিত হয়। উদাহরণস্বরূপ, প্যারিসের মধ্যরাতের কয়েক মিনিটের পরে ফ্রান্স একটি নতুন দিন এবং মন্ট্রিয়াল কোয়েবেকের "গতকাল" এখনও রয়েছে ।

যদি কোনও সময় অঞ্চল নির্দিষ্ট না করা থাকে, JVM সুস্পষ্টভাবে তার বর্তমান ডিফল্ট সময় অঞ্চলটি প্রয়োগ করে। ডিফল্ট যে কোনও মুহুর্তে পরিবর্তিত হতে পারে, তাই আপনার ফলাফলগুলি পৃথক হতে পারে। আর্গুমেন্ট হিসাবে আপনার কাঙ্ক্ষিত / প্রত্যাশিত সময় অঞ্চলটি স্পষ্টভাবে উল্লেখ করা ভাল।

একটি নির্দিষ্ট করুন সঠিক সময় অঞ্চল নাম এর বিন্যাসে continent/regionযেমন America/Montreal, Africa/Casablancaঅথবা Pacific/Auckland। কখনও যেমন 3-4 চিঠি সংক্ষেপ ব্যবহার ESTবা ISTহিসাবে তারা না সত্য সময় অঞ্চল, না মান, এবং এমনকি অনন্য নয় (!)।

ZoneId z = ZoneId.of( "America/Montreal" ) ;  
LocalDate today = LocalDate.now( z ) ;

আপনি যদি জেভিএমের বর্তমান ডিফল্ট সময় অঞ্চলটি ব্যবহার করতে চান, এটির জন্য জিজ্ঞাসা করুন এবং একটি যুক্তি হিসাবে পাস করুন। বাদ দেওয়া থাকলে, জেভিএমের বর্তমান ডিফল্ট স্পষ্টভাবে প্রয়োগ করা হয়। স্পষ্ট করে বলা ভাল, যেহেতু JVM এর মধ্যে যে কোনও অ্যাপ্লিকেশানের যে কোনও থ্রেডে কোনও কোড দ্বারা রানটাইমের সময় যে কোনও মুহূর্তে ডিফল্টটি পরিবর্তন করা যেতে পারে ।

ZoneId z = ZoneId.systemDefault() ;  // Get JVM’s current default time zone.

অথবা একটি তারিখ নির্দিষ্ট করুন। আপনি জানুয়ারি-ডিসেম্বরের জন্য 1-12 বুদ্ধিমান সংখ্যার সাথে একটি সংখ্যা দ্বারা মাস নির্ধারণ করতে পারেন।

LocalDate ld = LocalDate.of( 1986 , 2 , 23 ) ;  // Years use sane direct numbering (1986 means year 1986). Months use sane numbering, 1-12 for January-December.

বা, আরও ভাল, Monthএনাম অবজেক্টগুলি প্রাক-সংজ্ঞায়িত ব্যবহার করুন , বছরের প্রতিমাসের জন্য একটি। টিপ: Monthআপনার কোডটি আরও স্ব-ডকুমেন্টিং করতে, বৈধ মানগুলি নিশ্চিত করতে এবং টাইপ-সুরক্ষা সরবরাহ করতে কেবল কোডগ্রাফিকের চেয়ে বরং আপনার কোডবেজ জুড়ে এই বিষয়গুলি ব্যবহার করুন ।

LocalDate ld = LocalDate.of( 1986 , Month.FEBRUARY , 23 ) ;

একটি সঙ্গে LocalDateহাত, আমরা রুপান্তর পাশে চাই যে মুহূর্তে, শুরু এবং দিনের স্টপ একজোড়া মধ্যে। অনুমান করবেন না যে দিনটি শুরু হয়ে যায় 00:00:00 দিনের সময় থেকে। ডাইটলাইট সেভিং টাইম (ডিএসটি) এর মতো অসঙ্গতিগুলির কারণে, দিনটি অন্য সময় যেমন শুরু হতে পারে যেমন 01:00:00। সুতরাং জাভা.টাইম দিনের প্রথম মুহূর্তটি নির্ধারণ করুন। আমরা এই জাতীয় কোনও অসঙ্গতি সন্ধান করতে একটি ZoneIdযুক্তি পাস করি LocalDate::atStartOfDay। ফলাফল ক ZonedDateTime

ZonedDateTime zdtStart = ld.atStartOfDay( z ) ;

সাধারণত একটি সময় বিঘত সংজ্ঞা সেরা পদ্ধতির হাফ-উন্মুক্ত পদ্ধতির যেখানে শুরুতে হয় সমেত যখন বিভক্তি একচেটিয়া । সুতরাং কোনও দিন তার প্রথম মুহুর্তের সাথে শুরু হয় এবং পরবর্তী দিনের প্রথম মুহুর্ত পর্যন্ত চলে তবে তা অন্তর্ভুক্ত নয়।

ZonedDateTime zdtStop = ld.plusDays( 1 ).atStartOfDay( z ) ;  // Determine the following date, and ask for the first moment of that day.

পুরো দিনের জন্য আমাদের ক্যোয়ারী এসকিউএল কমান্ডটি ব্যবহার করতে পারে না BETWEEN। সেই কমান্ডটি ফুল-ক্লোজড ( []) প্রথম এবং শেষ উভয়ই অন্তর্ভুক্ত রয়েছে যেখানে আমরা হাফ-ওপেন ( [)) চাই। আমরা একজোড়া মানদণ্ড >=এবং ব্যবহার করি <

আপনার কলামটি খারাপ নাম দেওয়া হয়েছে। বিভিন্ন ডাটাবেস দ্বারা সংরক্ষিত হাজার শব্দগুলির মধ্যে যে কোনও একটি এড়িয়ে চলুন। placedএই উদাহরণে ব্যবহার করা যাক ।

আপনার ?কোডগুলিতে আমাদের মুহুর্তগুলি নির্দিষ্ট করার জন্য স্থানধারক ব্যবহার করা উচিত ।

String sql = "SELECT * FROM orders WHERE placed >= ? AND placed < ? ; " ;

তবে আমাদের ZonedDateTimeহাতে বস্তু রয়েছে, যখন আপনার ডেটাবেসটি দৃশ্যত উপরোক্ত আলোচনা অনুসারে পূর্ণসংখ্যা সংরক্ষণ করছে। আপনি যদি আপনার কলামটি সঠিকভাবে সংজ্ঞা দিয়েছিলেন তবে আমরা ZonedDateTimeজেডিবিসি ৪.২ বা তার পরে সমর্থনকারী যে কোনও জেডিবিসি ড্রাইভারের সাহায্যে অবজেক্টগুলি পাস করতে পারি ।

তবে পরিবর্তে আমাদের পুরো সেকেন্ডে একটি গণনা-থেকে-পর্ব পেতে হবে। আমি ধরে নেব আপনার যুগের রেফারেন্সের তারিখটি ইউটিসিতে 1970 সালের প্রথম মুহুর্ত। ZonedDateTimeক্লাস ন্যানোসেকেন্ড রেজোলিউশনে সক্ষম হওয়ায় সম্ভাব্য ডেটা ক্ষতি থেকে সাবধান থাকুন । যে কোনও ভগ্নাংশের দ্বিতীয়টি নিম্নলিখিত লাইনে ছাঁটা হবে।

long start = zdtStart().toEpochSecond() ;  // Transform to a count of whole seconds since 1970-01-01T00:00:00Z.
long stop = zdtStop().toEpochSecond() ; 

এখন আমরা উপরের সংজ্ঞায়িত আমাদের এসকিউএল কোডটিতে সেই পূর্ণসংখ্যাগুলি পাস করতে প্রস্তুত।

PreparedStatement ps = con.prepareStatement( sql );
ps.setObject( 1 , start ) ;
ps.setObject( 2 , stop ) ;
ResultSet rs = ps.executeQuery();

আপনি যখন থেকে পূর্ণসংখ্যার মানগুলি পুনরুদ্ধার করেন ResultSet, আপনি Instantবস্তুগুলিতে (সর্বদা ইউটিসিতে) বা ZonedDateTimeবস্তুগুলিতে (একটি নির্ধারিত সময় অঞ্চল সহ) রূপান্তর করতে পারেন ।

Instant instant = rs.getObject(  , Instant.class ) ;
ZonedDateTime zdt = instant.atZone( z ) ;

সম্পর্কিত জাভা.টাইম

Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই শ্রেণীর বিরক্তিজনক পুরাতন স্থানচ্যুত উত্তরাধিকার যেমন তারিখ-সময় শ্রেণীর java.util.Date,Calendar , &SimpleDateFormat

Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।

আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যাগুলির জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশন হয় জেএসআর 310

জাভা.টাইম ক্লাস কোথায় পাবেন?

ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে ভবিষ্যতের সম্ভাব্য সংযোজনগুলির একটি প্রমাণকারী ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval, YearWeek, YearQuarter, এবং আরো


4

প্রথমত, আপনি একটি ব্যবহার করে সুবিধা লাভবান হচ্ছেন না PreparedStatement। আমি প্রথমে আপনাকে PreparedStatementনিম্নলিখিত হিসাবে আপনার সংশোধন করার পরামর্শ দেব :

PreparedStatement statement = con.prepareStatement("select * from orders where status=? AND date=?")

এরপরে আপনি statement.setXX(param_index, param_value)সংশ্লিষ্ট মানগুলি সেট করতে ব্যবহার করতে পারেন । রূপান্তর করার জন্য timestamp, নীচের জাভাদোকগুলি দেখুন:

রেডিয়ার স্টেটমেন্ট.সেটটাইমস্ট্যাম্প ()
টাইমস্ট্যাম্প

আশাকরি এটা সাহায্য করবে!


4

অ্যান্ড্রয়েডে এটি খুব সহজ current বর্তমান কারেন্টটাইমমিলিস পেতে ক্যালেন্ডার ক্লাসটি ব্যবহার করুন।

Timestamp stamp = new Timestamp(Calendar.getInstance().getTimeInMillis());
Date date = new Date(stamp.getTime());
Log.d("Current date Time is   "  +date.toString());

জাভাতে কেবলমাত্র বর্তমান টাইমস্ট্যাম্প পাওয়ার জন্য সিস্টেম। বর্তমান টাইমমিলিস () ব্যবহার করুন


3

আপনি কোয়েরিতে কী নির্বাচন করার চেষ্টা করছেন তা নিশ্চিত নন, তবে মনে রাখবেন যে UNIX_TIMESTAMP()তর্ক ছাড়াই এখন সময় ফেরায়। আপনার সম্ভবত যুক্তি হিসাবে একটি বৈধ সময় সরবরাহ করা উচিত, বা শর্তটি পরিবর্তন করা উচিত।

সম্পাদনা করুন:

প্রশ্নের উপর ভিত্তি করে সময় বেঁধে থাকা ক্যোয়ারীর উদাহরণ এখানে রয়েছে:

PreparedStatement statement = con
        .prepareStatement("select * from orders where status='Q' AND date > ?");
Date date = new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2000");
statement.setDate(1, new java.sql.Date(date.getTime()));

সম্পাদনা: টাইমস্ট্যাম্প কলাম

টাইমস্ট্যাম্প ব্যবহার java.sql.Timestampএবং প্রস্তুতিমূলক স্টেটমেন্ট.সেটটাইমস্ট্যাম্পের ক্ষেত্রে () , যেমন:

PreparedStatement statement = con
        .prepareStatement("select * from orders where status='Q' AND date > ?");
Date date = new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2000");
Timestamp timestamp = new Timestamp(date.getTime());
statement.setTimestamp(1, timestamp);

এখন আমার অবস্থাটি এক্সকার্ট_আর্ডার থেকে * নির্বাচন করা হয়েছে যেখানে স্ট্যাটাস = 'কিউ' এবং তারিখ = সিউরড () এখন কেবলমাত্র শূন্য প্রদর্শন করেছে
কৃষ্ণ ভেনী

@ কৃষ্ণভেণী আপনি কোন রেকর্ড নির্বাচন করার চেষ্টা করছেন?
টেনোরেক্স

তারিখ (11111111,123456767,122333344) এবং স্থিতি = (কিউ, কিউ, কিউ) .. সমস্তই আমার ডাটাবেসে সংরক্ষিত আছে। এখন আমার জিজ্ঞাসাটি পরীক্ষা করতে হবে এবং গণনা মানটি পেতে হবে এবং আমার কনসোলে প্রদর্শিত হবে (যেমন) কতজন আছে? গণনা মান ফেরত দেওয়ার পরে ডেটা মিলছে
কৃষ্ণ ভেনী

@ কৃষ্ণভেণী আপনি যদি ফলাফলটি নির্দিষ্ট তারিখের সাথে আবদ্ধ হতে চান তবে কোয়েরিতে সেই তারিখটি ব্যবহার করুন, অন্যথায় তারিখের শর্তটি সরিয়ে দিন।
টেনোরেক্স

আমার কোডটি সফলভাবে কাজ করে যখন তারিখটি আমার ডাটাবেসে সংরক্ষণ করা হয় yyyy-mm-dd ফর্ম্যাটে। তবে এখন আমার তারিখটি 1343469690 ফর্ম্যাটে টাইমস্ট্যাম্পে সংরক্ষণ করা হয়েছে। কীভাবে গণনা মান পাবেন? আমি কীভাবে এখানে একটি কোড লিখেছি
কৃষ্ণ ভেনী

3

new Date(timestamp.getTime())কাজ করা উচিত, তবে নতুন অভিনব জাভা 8 ওয়ে (যা আরও মার্জিত এবং আরও বেশি প্রকার সুরক্ষিত হতে পারে, পাশাপাশি আপনাকে নতুন সময়ের ক্লাসগুলি ব্যবহারে নেতৃত্ব দিতে সহায়তা করবে) কল করতে হবে Date.from(timestamp.toInstant())

( Timestampনিজে নিজেই একটি উদাহরণের উপর নির্ভর করবেন না Date; অন্য উত্তরের মন্তব্যে ব্যাখ্যা দেখুন ))



3

আমি উত্তর দিতে বাধ্য বোধ করি যেহেতু অন্যান্য উত্তরগুলি টাইম অঞ্চল অজ্ঞাব্যত্ত বলে মনে হয় যা সত্যিকারের বিশ্ব প্রয়োগ হতে পারে না। টাইমস্ট্যাম্প এবং জেভিএম যখন বিভিন্ন টাইম অঞ্চল ব্যবহার করে তখন টাইমস্ট্যাম্প-থেকে-ডেট রূপান্তরকে সঠিক করতে আপনি জোদা টাইমের লোকালডেটটাইম (বা জাভায়8 এ লোকালডেটটাইম) ব্যবহার করতে পারেন:

Timestamp timestamp = resultSet.getTimestamp("time_column");
LocalDateTime localDateTime = new LocalDateTime(timestamp);
Date trueDate = localDateTime.toDate(DateTimeZone.UTC.toTimeZone());

নীচের উদাহরণটি ধরে নিয়েছে যে টাইমস্ট্যাম্পটি ইউটিসি (সাধারণত ডাটাবেসের ক্ষেত্রে যেমন হয়)। আপনার টাইমস্ট্যাম্পগুলি যদি বিভিন্ন টাইমজোনে থাকে তবে toDateবিবৃতিটির টাইমজোন প্যারামিটারটি পরিবর্তন করুন ।


2

এই জাভা কোডটি ব্যবহার করার চেষ্টা করুন:

Timestamp stamp = new Timestamp(System.currentTimeMillis());
Date date = new Date(stamp.getTime());
DateFormat f = new SimpleDateFormat("yyyy-MM-dd");
DateFormat f1 = new SimpleDateFormat("yyyy/MM/dd");
String d = f.format(date);
String d1 = f1.format(date);
System.out.println(d);
System.out.println(d1);

0

ধরে নিচ্ছি আপনার একটি পূর্ব বিদ্যমান রয়েছে java.util.Date date:

Timestamp timestamp = new Timestamp(long);
date.setTime( l_timestamp.getTime() );

0

টাইমস্ট্যাম্প এবং নির্দিষ্ট অঞ্চলের সময় অঞ্চল থেকে তারিখ পেতে আপনি এই পদ্ধতিটি ব্যবহার করতে পারেন।

public String getDayOfTimestamp(long yourLinuxTimestamp, String timeZone) {
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(yourLinuxTimestamp * 1000);
    cal.setTimeZone(TimeZone.getTimeZone(timeZone));
    Date date = cal.getTime();
}

-1
String timestamp="";
Date temp=null;
try {
    temp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(getDateCurrentTimeZone(Long.parseLong(timestamp)));
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
int dayMonth=temp.getDate();
int dayWeek=temp.getDay();
int hour=temp.getHours();
int minute=temp.getMinutes();
int month=temp.getMonth()+1;
int year=temp.getYear()+1900;

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.