public class DateServices
extends java.lang.Object
implements java.io.Serializable
Constructor and Description |
---|
DateServices() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
formatDate(java.util.Date date,
java.lang.String format)
Formats a Date into a date/time string.
|
static java.lang.String |
formatDate(long milliseconds,
java.lang.String format)
|
static java.util.Date |
getWorkingDay(java.util.Date fromDate,
int numDaysAhead)
Returns the working day n days in the future from an origin date, and using the organisational calendar to determine non-working days.
|
static boolean |
isWorkingDay(java.util.Date date)
Returns true if the date is configured as a non-working day in the organisational calendar, otherwise false.
|
public static java.lang.String formatDate(java.util.Date date, java.lang.String format)
Here is a summary of the formatting pattern characters that can be used:
Letter | Date or Time Component | Presentation | Examples |
---|---|---|---|
G
| Era designator | Text | AD
|
y
| Year | Year | 1996 ; 96
|
Y
| Week year | Year | 2009 ; 09
|
M
| Month in year | Month | July ; Jul ; 07
|
w
| Week in year | Number | 27
|
W
| Week in month | Number | 2
|
D
| Day in year | Number | 189
|
d
| Day in month | Number | 10
|
F
| Day of week in month | Number | 2
|
E
| Day name in week | Text | Tuesday ; Tue
|
u
| Day number of week (1 = Monday, ..., 7 = Sunday) | Number | 1
|
a
| Am/pm marker | Text | PM
|
H
| Hour in day (0-23) | Number | 0
|
k
| Hour in day (1-24) | Number | 24
|
K
| Hour in am/pm (0-11) | Number | 0
|
h
| Hour in am/pm (1-12) | Number | 12
|
m
| Minute in hour | Number | 30
|
s
| Second in minute | Number | 55
|
S
| Millisecond | Number | 978
|
z
| Time zone | General time zone | Pacific Standard Time ; PST ; GMT-08:00
|
Z
| Time zone | RFC 822 time zone | -0800
|
X
| Time zone | ISO 8601 time zone | -08 ; -0800 ; -08:00
|
SimpleDateFormat
must interpret the abbreviated year
relative to some century. It does this by adjusting dates to be
within 80 years before and 20 years after the time the SimpleDateFormat
instance is created. For example, using a pattern of "MM/dd/yy" and a
SimpleDateFormat
instance created on Jan 1, 1997, the string
"01/11/12" would be interpreted as Jan 11, 2012 while the string "05/04/64"
would be interpreted as May 4, 1964.
During parsing, only strings consisting of exactly two digits, as defined by
Character.isDigit(char)
, will be parsed into the default century.
Any other numeric string, such as a one digit string, a three or more digit
string, or a two digit string that isn't all digits (for example, "-1"), is
interpreted literally. So "01/02/3" or "01/02/003" are parsed, using the
same pattern, as Jan 2, 3 AD. Likewise, "01/02/-3" is parsed as Jan 2, 4 BC.
'Y'
is specified and the calendar doesn't support any week
years, the calendar year ('y'
) is used instead. The
support of week years can be tested with a call to
DateFormat.getCalendar().isWeekDateSupported().GMTOffsetTimeZone:Hours must be between 0 and 23, and Minutes must be between 00 and 59. The format is locale independent and digits must be taken from the Basic Latin block of the Unicode standard.GMT
Sign Hours:
Minutes Sign: one of+ -
Hours: Digit Digit Digit Minutes: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
For parsing, RFC 822 time zones are also
accepted.
RFC822TimeZone: Sign TwoDigitHours Minutes TwoDigitHours: Digit DigitTwoDigitHours must be between 00 and 23. Other definitions are as for general time zones.
For parsing, general time zones are also accepted.
ISO8601TimeZone: OneLetterISO8601TimeZone TwoLetterISO8601TimeZone ThreeLetterISO8601TimeZone OneLetterISO8601TimeZone: Sign TwoDigitHoursOther definitions are as for general time zones or RFC 822 time zones.Z
TwoLetterISO8601TimeZone: Sign TwoDigitHours MinutesZ
ThreeLetterISO8601TimeZone: Sign TwoDigitHours:
MinutesZ
For formatting, if the offset value from GMT is 0, "Z"
is
produced. If the number of pattern letters is 1, any fraction of an hour
is ignored. For example, if the pattern is "X"
and the time zone is
"GMT+05:30"
, "+05"
is produced.
For parsing, "Z"
is parsed as the UTC time zone designator.
General time zones are not accepted.
If the number of pattern letters is 4 or more, IllegalArgumentException
is thrown when constructing a SimpleDateFormat
or applying a pattern.
Date and Time Pattern Result "yyyy.MM.dd G 'at' HH:mm:ss z"
2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"
Wed, Jul 4, '01
"h:mm a"
12:08 PM
"hh 'o''clock' a, zzzz"
12 o'clock PM, Pacific Daylight Time
"K:mm a, z"
0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"
02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"
Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"
010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
2001-07-04T12:08:56.235-0700
date
- the date/time value to be formattedformat
- the formatting patternpublic static java.lang.String formatDate(long milliseconds, java.lang.String format)
milliseconds
- date represented as the number of milliseconds since 1st Jan 1970format
- the formatting patternpublic static java.util.Date getWorkingDay(java.util.Date fromDate, int numDaysAhead) throws com.ebasetech.ufs.utility.PersistenceException
Javascript example:
var d1 = new Date(fields.DATE_FIELD1.value); var d2 = DateServices.getWorkingDay(d1, 5); fields.DATE_FIELD2.value = d2;
fromDate
- starting datenumDaysAhead
- number of working days in the futurecom.ebasetech.ufs.utility.PersistenceException
public static boolean isWorkingDay(java.util.Date date) throws com.ebasetech.ufs.utility.PersistenceException
Javascript example:
// check is today a working day if (DateServices.isWorkingDay(new Date()) .. // check specific date is a working day if (DateServices.isWorkingDay(new Date(fields.DATE_FIELD.value)) ..
date
- the date to be checkedcom.ebasetech.ufs.utility.PersistenceException