Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

تبدیل به String و برعکس #76

Closed
Borderliner opened this issue Jan 5, 2023 · 4 comments
Closed

تبدیل به String و برعکس #76

Borderliner opened this issue Jan 5, 2023 · 4 comments
Labels

Comments

@Borderliner
Copy link

با سلام و خسته نباشید.
میدونم که برای تبدیل تاریخ به متن میشه از PersianDate().toString() استفاده کرد. حالا برعکس اگه بخوایم یه تاریخی که به صورت متن هستش رو ازش یه آبجکت PersianDate بسازیم. مثلا:

val dateString = PersianDate().toString()
val date = PersianDate.fromString(dateString) // برای مثال

این رو نیاز دارم چون باید تاریخ رو توی کلاسی که Parcelable هست استفاده کنم. خیلی ممنون.

@samanzamani
Copy link
Owner

سلام
برای تبدیل تاریخ از string به PersianDate می تونید از کلاس PersianDateFormat و متد parse استفاده کنید.
مثال:

String sampleDate1 = '1401-10-10';
String sampleDate2 = '1401-10-13 22:10:15';
PersianDateFormat formater = new PersianDateFormat();
try{
  PersianDate pDate1 = formater.parse(sampleDate1,'yyyy-MM-dd');
  PersianDate pDate2 = formater.parse(sampleDate1,'yyyy-MM-dd HH:mm:ss');
}catch(){}

اطلاعات بیشتر در مستندات وجود داره.

@Borderliner
Copy link
Author

اگه pattern اش رو ندونم چی؟ یعنی یه آبجکتی که با initJalali ساختم.

@samanzamani
Copy link
Owner

samanzamani commented Jan 6, 2023

اگه قبلا ابجک PersianDate به هر نحوی ساختید و می خوایید ازش string بگیرید بهتره به جای استفاده از متد toString() از ‍PersianDateFormat و متد format استفاده کنید. اینجوری می تونید به هر فرمتی که بخوایید ازش string تولید کنید و اگر نیاز داشتید دوباره با متد parse به PersianDate تبدیلش کنید.
مثال:

PersianDate pDate = new Persiandate();
String pDateString = PersianDateFormat.format(pdate,'Y m j');//return 1401 10 16 as a string
PersianDateFormat formater = new PersianDateFormat();
try{
  PersianDate pDate2 = formater.parse(pDateString,'yyyy MM dd');
}catch(){}

@Borderliner
Copy link
Author

متوجه شدم خیلی ممنونم. ولی کاش یه راه حل یک خطی هم داشت. من از کاتلین استفاده میکنم، دوست ندارم هربار که آبجکت میسازم دو سه خط کد بنویسم. البته خودم میتونم حلش کنم ولی کاش این قابلیت وجود داشت.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants