Closed Borderliner closed 1 year ago
سلام
برای تبدیل تاریخ از 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(){}
اطلاعات بیشتر در مستندات وجود داره.
اگه pattern اش رو ندونم چی؟ یعنی یه آبجکتی که با initJalali ساختم.
اگه قبلا ابجک 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(){}
متوجه شدم خیلی ممنونم. ولی کاش یه راه حل یک خطی هم داشت. من از کاتلین استفاده میکنم، دوست ندارم هربار که آبجکت میسازم دو سه خط کد بنویسم. البته خودم میتونم حلش کنم ولی کاش این قابلیت وجود داشت.
با سلام و خسته نباشید. میدونم که برای تبدیل تاریخ به متن میشه از
PersianDate().toString()
استفاده کرد. حالا برعکس اگه بخوایم یه تاریخی که به صورت متن هستش رو ازش یه آبجکت PersianDate بسازیم. مثلا:این رو نیاز دارم چون باید تاریخ رو توی کلاسی که Parcelable هست استفاده کنم. خیلی ممنون.