কীভাবে লোকালডেটকে এসকিউএল তারিখ জাভাতে রূপান্তর করবেন?


101

আমি কীভাবে একটি স্থানীয় তারিখকে রূপান্তর করতে পারি java.sql.Date?

চেষ্টা:

Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(new Date(date));

এটি ব্যর্থ হয় (সংকলন করবে না) এবং আমি যা যা খুঁজে পেতে পারি তা হ'ল জোদা সময়ের স্টাফ।

আমি জাভা 8 ব্যবহার করছি



4
@ এ্যাসেলিয়াস লিঙ্কযুক্ত প্রশ্নের উত্তর এখানে দেওয়া প্রশ্নের চেয়ে কীভাবে ভাল? অন্য প্রশ্নটি এর নকল হিসাবে বন্ধ করা উচিত, বিপরীতে নয়।
মাদারার ঘোস্ট

4
@ সেকেন্ড রিকুডো সদৃশটি কীভাবে স্থানীয় তারিখ থেকে তারিখ এবং তদ্বিপরীত রূপান্তর করতে পারে তা দেখায় এবং তাই আরও সাধারণ বলে মনে হয়।
Assylias

উত্তর:


177

উত্তরটি সত্যিই সহজ;

import java.sql.Date;
...
LocalDate locald = LocalDate.of(1967, 06, 22);
Date date = Date.valueOf(locald); // Magic happens here!
r.setDateOfBirth(date);

আপনি যদি এটিকে অন্য উপায়ে রূপান্তর করতে চান তবে আপনি এটি এর মতো করুন:

Date date = r.getDate();
LocalDate localD = date.toLocalDate();

rআপনি JOOQ এ যে রেকর্ডটি ব্যবহার করছেন তা হ'ল এবং .getDate()এটি আপনার রেকর্ডের বাইরে তারিখ পাওয়ার পদ্ধতি; আসুন আমরা আপনার তারিখের কলামটি বলে থাকি যে তারিখ_মুখে জন্ম হয়, তারপরে আপনার আসার পদ্ধতিটি কল করা উচিত getDateOfBirth()


4
এই "ভয়ঙ্কর হ্যাক" java.time সঙ্গে অনুযায়ী হবে * লেখক:। Stackoverflow.com/questions/33066904/...
Dherik

15
আপনি এই প্রশ্নটি সম্পর্কে java.util.Date নয় java.sql.Date এমন প্রশ্নগুলির বিষয়ে পুনর্বিবেচনা করছেন ।
জেমটাস্টিক

0

আপনি যদি বর্তমান তারিখ চান:

Date date = Date.valueOf(LocalDate.now());

আপনি যদি একটি নির্দিষ্ট তারিখ চান:

Date date = Date.valueOf(LocalDate.of(1967, 06, 22));

4
আপনি যদি বর্তমান মুহুর্তটি চান তবে এটি কেবল তাত্পর্যপূর্ণ, যদি আপনি একটি নির্দিষ্ট তারিখ চান, তবে আপনি যখন কারও জন্মের তারিখ নিয়ে কাজ করছেন তখন এটি কার্যকর হবে না।
জেমটাস্টিক

হ্যাঁ, এটি বর্তমান তারিখটি সন্নিবেশ করাতে হবে, উদাহরণস্বরূপ আপনি যখন বস্তুটি তৈরি করেন এবং তৈরির তারিখটি বজায় রাখতে চান।
রিচার্ডকে

কোনটি উল্লেখ করা গুরুত্বপূর্ণ কারণ মূল প্রশ্নটি একটি নির্দিষ্ট তারিখ তৈরি সম্পর্কে is এটি সমস্ত অনুলিপি-পাঠকদের জন্য একটি নোট। আপনি Date date = Date.valueOf(LocalDate.of(1967, 06, 22));যদি এটি "দ্রুত" করতে চান তবে আপনি সঠিক উত্তরটি অনলাইনটিতে রাখতে পারেন ।
জেমটাস্টিক

-1

আপনি কি স্থানীয় তারিখের টোডেট () পদ্ধতিটি ব্যবহার করার চেষ্টা করেছেন?

হিসাবে:

Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(date.toDate());

সাধারণভাবে, কেবল "" এটি ব্যর্থ হয় "বলার চেয়ে কীভাবে এটি ব্যর্থ হয় তা নির্দিষ্ট করে নেওয়া ভাল ধারণা ।


সত্যি কথা বলতে, আমি কেবল আমার উত্তর পোস্ট করার জন্য প্রশ্নটি পোস্ট করেছিলাম যাতে আপনি গুগল করার সময় এটি খুঁজে পেতে পারেন। আমাকে নিজের মতো করে এটি চিত্রিত করতে হয়েছিল কারণ ভালোর কাছে এই প্রশ্ন বা উত্তর নেই।
জেমটাস্টিক

6
ঠিক আছে, এখন আপনার কাছে দুটি উত্তর রয়েছে, তত বেশি মেরিয়ার। আমি মনে করি না যে আপনার নিজের পোস্টের উত্তর দেওয়ার ক্ষেত্রে কোনও ভুল আছে।
জুহিস্ট

আমি আশা করি এটি ভবিষ্যতে আমার জায়গায় কাউকে সহায়তা করবে।
জেমটাস্টিক

4
ওপি লিখেছিল “[…] আমি যা যা খুঁজে পাই তা হ'ল জোদা সময়সামগ্রী। আমি জাভা 8 আনসন করছি। আপনার উত্তরটি অবশ্য জাভা 8 উত্তরের পরিবর্তে আরও বেশি জোদা স্টাফ।
মাইকেল পিফেল

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