Xamarin Form Receiving an Arabic DatePicker Binding Error - xamarin

System.ArgumentOutOfRangeException: Specified time is not supported in this calendar. It should be between 04/30/1900 00:00:00 (Gregorian date) and 11/16/2077 23:59:59 (Gregorian date), inclusive.
Parameter name: time

because your ar-sa culture's default calender is UmAlQuraCalendar calender.Its range is
1318/01/01 - 1500/12/30 ,
so you should change the date to Gregorian dateļ¼Œ
for example ,you get a date 1378/1/1
UmAlQuraCalendar umAlQuraCalendar = new UmAlQuraCalendar();
var datatime = new DateTime(1378,3,1, umAlQuraCalendar);
GregorianCalendar gregorian = new GregorianCalendar();
DateTime gregorianDate = new DateTime(gregorian.GetYear(datatime), gregorian.GetMonth(datatime), gregorian.GetDayOfMonth(datatime));
Console.WriteLine("ar-sa----" + gregorianDate .ToString());//the result will be:"ar-sa----9/14/1958 12:00:00 AM"

Related

How to get current time with offset in Java?

How do I get the current time in the below format. Timezone is Europe/London:-
04:47 PM GMT+1
I have tried various different ways, including below code:-
ZoneId zone = ZoneId.of("Europe/London");
Locale locale = Locale.forLanguageTag("en-GB");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
"dd MMM uuuu HH:mm OOOO", locale);
ZonedDateTime dateTime = Instant.now().atZone(zone);
String result = dateTime.format(formatter);
This gets me -->30 Mar 2021 18:36 GMT+01:00. But its not what I want.
Update:- Its resolved now. This pattern helped----->> DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "hh:mm a O", locale);

I have 2 dates in Laravel, how can I run a auto generate post to go through between two dates with time period?

I want to create a Question (question table) that has startDate and endDate and period that is in hour (1-2-3-... hours) and user_id
Now I want to auto generate question rows in another table (Question_user) between two dates with period
ex:
startDate = 2019-11-01 00:00:00
endDate = 2019-11-20 12:00:00
period = 12
Now I want to create questions in (Question_user) at:
2019-11-01 00:00:00
2019-11-01 12:00:00
2019-11-02 00:00:00
...
How can I do this?
*Date format -->Year/Month/Day
in your controller , add below function :
protected function GenerateDateRange(Carbon $start_date, Carbon $end_date,$period)
{
$dates = [];
for($date = $start_date; $date->lte($end_date); $date->addHours($period)) {
$dates[] = $date->format('Y-m-d H:i:s');
}
return $dates;
}
and use it like this :
$dateRanges=$this->GenerateDateRange(Carbon::parse("2019-11-01 00:00:00"),Carbon::parse("2019-11-20 12:00:00"),12);
then for loop through $dateRanges and insert your data .

String from Date works, Date from String doesn't work

I'm taking a NSDate and turning it into a dateString. But then...
When I try to take that same dateString and turn it back into a NSDate my dates aren't correct.
NSDate to dateString...
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMM d, yyyy H:mm a"
let dateString = dateFormatter.stringFromDate(timeDate as! NSDate)
print("Date: \(dateString)")
Console:
Date: Mar 22, 2016 22:30 PM
Date: Mar 23, 2016 1:00 AM
Date: Mar 23, 2016 9:00 AM
dateString to plainDate...
let reverseDateFormatter = NSDateFormatter()
reverseDateFormatter.dateFormat = "MMM d, yyyy H:mm a"
let plainDate = reverseDateFormatter.dateFromString(dateString)
print("Date Reverse: \(plainDate)")
Console:
Date Reverse: Optional(2016-03-22 17:30:00 +0000)
Date Reverse: Optional(2016-03-23 05:00:00 +0000)
Date Reverse: Optional(2016-03-23 05:00:00 +0000)
When your converting the Date to a string, your losing the timezone information, and then its not able to piece it back together.
Is there some reason you can't store the Date itself as an NSDate and then use that instead of re-building the date from a string?
If you need to convert it back to the full date from the string, you will need to adjust your format to store the timezone as well
stringFromDate returns a non-optional string, but dateFromString returns an optional date. Conditionally unwrap the result before printing it out:
if let result = reverseDateFormatter.dateFromString(dateString) {
print(result)
}

Formatting date without lading zero to the day [duplicate]

This question already has answers here:
date format function to display date as "Jan 13 2014"
(3 answers)
Closed 7 years ago.
I writing a code in VBScript, but I cannot get the datetime part right.
I'm using FormatDateTime(now), but the gives not the best result like
FormatDateTime(now)
8-01-2016 9:05:12 becomes 01-08-2016 9:05:12.
28-01-2016 19:01:18 stays 28-01-2016 19:01:18.
Has to be:
8-01-2016 9:05:12
28-01-2016 19:01:18
Is there a way to get both the same?
Try using the format argument of FormatDateTime.
FormatDateTime(now, 2) 'This should return in mm/dd/yy format
More info here.
http://www.w3schools.com/asp/func_formatdatetime.asp
format (Optional) A value that specifies the date/time format to use
Can take the following values:
0 = vbGeneralDate - Default. Returns date: mm/dd/yy and time if
specified: hh:mm:ss PM/AM.
1 = vbLongDate - Returns date: weekday,
monthname, year
2 = vbShortDate - Returns date: mm/dd/yy
3 =
vbLongTime - Returns time: hh:mm:ss PM/AM
4 = vbShortTime - Return
time: hh:mm
This should do what you want.
od = "28-01-2016 19:01:18"
nd = FormatDateTime(od,0)
MsgBox(nd)
Output: 1/28/2016 7:01:18 PM

Validating a Date - m/d/yyyy Doesn't Match mm/dd/yyyy?

I have a ruby script that checks a provided date, to make sure it is today's date. This is not working when the date provided doesn't have a 2 digit padding for the month. Is there anyway to get ruby to see that as equal? The example is that it says "Date Processed 3/13/2014 is not today's date 03/13/2014!" the difference is in the month - 3 vs 03. Below is the code. ev_val is provided from a csv and it is m/d/yyyy format. It is not provided with a 0 padding, though. Any thoughts?
Thanks!
tnow = Time.now
if ev_val != tnow.strftime("%m/%d/%Y")
log_linemsg = "Date Processed #{ev_val} is not today's date #{tnow.strftime("%m/%d/%Y")}! Processing date must be today's Date!!!\nSTOPPING SCRIPT!!!"
log_line = ["#{$cname}","#{log_linemsg}","","",]
puts log_linemsg
insert_logitems(connection, table_namelog, log_line)
exit
end
require "date"
date_val = Date.parse ev_val
today = Date.today
if today != date_val
log_linemsg = "Date Processed #{ev_val} is not today's date #{today}! Processing date must be today's Date!!!\nSTOPPING SCRIPT!!!"
end
Since you only care about the date portion, I would use Date instead of Time.
Take your input string and parse it into a Date object, then compare it to today's date.
?> date_val = Date.parse('3/13/2014')
=> Thu, 13 Mar 2014
>> date_val == Date.today
=> true
In your example Date.parse(ev_val) != Date.today should work for the comparison.

Resources