How to get today's date in Groovy - groovy

I am trying to get today's date in format of yyyyMMdd in groovy language.
I have tried to do this:
String oldDate = '20150702'
Date date = Date.parse( 'yyyyMMdd', oldDate )
String currentDate = date.format( 'yyyyMMdd' )
Output: 20150702
I am trying to get today's date however.

Then use:
new Date().format( 'yyyyMMdd' )

The answer of #Opal did not work for me:
groovy.lang.MissingMethodException: No signature of method: java.util.Date.format() is applicable for argument types: (String) values: [yyyy-MM-dd]
Here is a solution that worked for me:
new java.text.SimpleDateFormat("yyyy-MM-dd").format(new Date())
(edit: removed extra parenth at the end of snippet)

Related

how to compare dates using relational Operators in dart?

I'm working on a problem which requires to compare the date with other if the selected date is less than given then print Hello.
The date is present In String Format like given in Examaple
Ex:
if('2020-1-13'<'2021-1-5')
{
print(hello);
}
You should try this it should work
````
var date1 = DateTime.parse('2020-01-13').millisecondsSinceEpoch.toInt();
var date2 = DateTime.parse('2021-01-15').millisecondsSinceEpoch.toInt();
if(date1 < date2){
print('true');
}else{
print('false');
}
````
Instead of doing that just use the date's isBefore or isAfter operator
It would look something like the following:
final now = DateTime.now();
final yesterday = DateTime.now().subtract(Duration(days: 1));
print(now.isAfter(yesterday)); //true
Since your dates are in STring format, it you would have to use the DateTime.parse() method to construct your date objects, and then use the operators talked about above
package:basics provides DateTime extensions that can easily compare DateTime objects.
(Disclosure: I contributed those particular extensions.)

Manipulation of date in Groovy language

I have this script in Groovy:
currentDate = new Date().format( 'yyyyMMdd' )
I want to be able to manipulate the date in order to 'play' with the dates of it..
for example if I have this:20150701 I want to subtract days, weeks or months for example if I subtract one day it will be 20150630.
How can I do it without using TimeCategory?
thanks!
Without TimeCategory, you can only add or subtract days. If you want to add/subtract other fields, TimeCategory is a good way to go.
If your annoyance with TimeCategory is the with syntax, one alternative would be to use mixins (although they are generally considered deprecated since traits have been added to Groovy):
[Date, Integer].each { it.mixin(groovy.time.TimeCategory) }
def lastMonth = new Date() - 1.months
OK I have the answer to it, I tried this and it worked:
currentDate = new Date()
def yesterday = currentDate - 1
currentDate = yesterday.format("yyyyMMdd")

C#: conversion of field to month and year format

I have the line of code below
txtCustomers.Text = _myCustList[0].F5Customer.dateActive;
_myCustList[0].F5Customer.dateActive returns : 2/27/2014 12:00:00AM
I want the date format to be in [month , year]
I tried the code below but no luck
txtCustomers.Text = _myCustList[0].F5Customer.dateActive.ToString("MMMM , YYYY");
How can I get it in the [month, year] format.
What is the "month and year" format exactly? Maybe you want the complete month-name and year, then use lowercase yyyy, so "MMMM , yyyy" instead of "MMMM , YYYY":
txtCustomers.Text = _myCustList[0].F5Customer.dateActive.ToString("MMMM , yyyy");
Edit: as commented that property is a string not a DateTime. Why is a property that is called dateActive a string in the first place? I would make it a DateTime property. Otherwise you always have to parse it to a DateTime.
txtCustomers.Text = DateTime.Parse(_myCustList[0].F5Customer.dateActive).ToString("MMMM , yyyy");

Datetime parse exception in C#

I have tried all the ways, however not sure why the string date is not getting converted to datetime.
string windowsTime = "2/21/2009 10:35:14 PM"
DateTime time = DateTime.ParseExact(windowsTime, "MM/dd/yyyy hh:mm:ss tt", null);
I used, DateTime.Parse, ParseExact, Convert.ToDatetime.
But nothing is working, I am getting "String was not recognized as a valid DateTime.".
can somebody advise what am I doing wrong ?
Since the month has only one digit this is correct M.
You also have to use CultureInfo.InvariantCulture instead of null(means current-culture). Otherwise all / will be replaced with the actual date separator of your current culture( for me de-DE it's .):
DateTime time = DateTime.ParseExact(windowsTime, "M/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
Custom date and time format strings: the "/" Custom Format Specifier
as specified in the MSDN
"MM" The month, from 01 through 12. More information: The "MM" Custom
Format Specifier.
Custom Datetime

Convert string to Datetime Exception for 15-07-2013

I am trying to convert string to datetime. But it is giving me exceptioncontibously.
Kindly help.
DateTime dt = Convert.ToDateTime("15-07-2013");
I am getting exception as "String was not recognized as a valid DateTime."
Now i have the string as "15-07-2013 07:12:00 PM"
When i am using the code as mentioned below i am getting exception.
DateTime dtCurrentFile = DateTime.ParseExact("15-07-2013 07:12:00 PM", "dd-MM-yyyy HH:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None);
I am getting the same exception.
Your string format is "dd-MM-yyyy" , but Convert.ToDateTime() default format is "MM-dd-yyyy" . So Options are:
Changing your string format to "07/15/2013"
Forcing the conversion to adapt with it using:
DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy",CultureInfo.InvariantCulture, DateTimeStyles.None);
You can always force the format with DateTime.ParseExact and avoid culture issues with using InvariantCulture:
DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
Custom Date and Time Format Strings
However, your code works for me with culture "de-DE".
Update:
You have to use lower hh for the hours when you provide the am/pm designator:
DateTime.ParseExact("15-07-2013 07:12:00 PM", "dd-MM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None)
HH means 24h format which makes no sense at all with the AM/PM designator.
try to use ParseExact:
DateTime dt = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy", null);
The problem why you are getting exception is that by default C# supports date time in this format
"MM/dd/yyyy" where as you are trying passing date time is this format "dd-MM-yyyy"
although you can convert using your format but for that you need to tell the compiler your date is in which format so for that you can use
DateTime
myDate = DateTime.ParseExact("15-07-2013", "dd-MM-yyyy",
System.Globalization.CultureInfo.InvariantCulture);

Resources