Lotus Notes View Column Date Format - lotus-notes

I have imported an excel file into a Lotus Notes database using LotusScript. One of the columns in my view (which displays the imported data) shows a date. If the year is greater than 2000, it is shown with 4 digits e.g. 2001.
However if the year is less than 2000 the year is displayed with just 2 digits e.g. 99.
Does anybody know why this is?
The date is contained in a text field. The column uses the "Date / Time" style with "Show Only month, day and year". Display Time is not selected.

In your column properties, look at the 4th tab (Advanced Format). You say you have "Date/Time" selected, and "Display Date" selected. Nex to that in the "Special" field, have you ticked "Show 4 digit year for 21st century"? If so, 20th century dates will show with 2 digits, 21st century ones with 4.
I remember when this feature was added, and thinking how cool it was. God, I feel old!

Related

Excel Date Formatting is Being Changed from Date to General on Moblie Preview

So we have a weekly report that gets sent out. In the report there are dates assigned to production numbers and for some reason when previewed from a mobile device the dates are changed to integers. 43028 is October 20, 2017. I have no idea where this number is coming from, because this goes back to December 30, 1899. I have no idea why it's switching into this form and only on mobile devices.
This is how excel handles dates. The integer represents a count from a set date (you can enter 0 into a cell and format it as a date to find the starting date). Every +1 represents the next day from that starting point. Your decimals represent hours (.5 = half day).
You can try a helper column and set it equal to your date using =TEXT(A2,"m/dd/yyyy") where A2 is your current date. Date format can be adjusted to taste.

Excel interprets date entered differently among many users

I have a file with columns configured to format dates as yyyy/mm/dd. It's a shared file with a small team. Whenever I type "January 13" in a cell in the column, it returns a value of 2018/01/13, which is what the team wants. However, when my other colleagues enter the same "January 13" in that column, it returns a 2013/01/01 value. It's like Excel is interpreting the "13" as the year on his/her unit. We all use the same 2013 version and same computer model/type/brand.
What we tried so far:
-Comparing Excel applications to ensure the same configurations
-Saving the file as .xlsx instead of .xls
-Redoing the sheet into a new one
-Closing and opening the sheet
Yet none still worked. We hope to not go on the option of typing the whole date (January 13, 2018) as we somehow our fingers are dexterously trained to typing just January 13. Any insights on this please? Thanks! :)
The problem is in the Windows Regional Short Date settings.
If the short date settings are a variation of MDY, Excel will interpret your input(spelled out month and digits) as MD
If the short date settings are a variation of DMY; Excel will interpret your input as MY
In both cases, the Month is unambiguous. The short date format then interprets the digit based on the token following the Month token.
You will also see different results if you enter dates such as 1-12 vs 1-13 in the different environments.
If changing the short date settings is not an option (and the settings involved are MDY and DMY), one fix would be to always enter the dates as dd mmmm (13 January) as that would be interpreted as Jan 13, current year in either environment.
I would select all the cells/rows/columns that have dates and customize the format. Go to Home>Number and click on the dropdown (it might say "General" or "Short Date" or something). Click on "More Number Formats" and go to "Custom". In the cell under "Type:" put yyyy/mm/dd . Any way you type the date it should come out the same now. Either way, typing in number format should be easier than typing the month name.

Getting date to by in 'XX format for chart

I have data formatted as follows:
Year: Value
2002 4
2004 8
2010 3
...
When I plot the data the x axis tick marks are labeled as follows:
2002, 2004, 2010.
I would like them to be '02, '04, and '10.
However, when I change the custom format to yy, they all get switched to 05 (each tick mark has the same value).
How do I fix this to get what I am looking for?
Ensure your years that you entered in your cells are actually Excel date serial. Ie when you change the date format on the cells do they display differently? 2010 can be the number 2010 not the year 2010. As such enter your dates as 2010/01/01 or what ever pattern matches your system. Just make sure that it is an actual date. Once you have done that you can then apply the custom formatting.
Note the year in cells C2:C4 are actually 2002/01/01, 2004/01/01, 2010/01/01 with custom format yyyy so that only the year is displayed.
Sequence:
1) Enter your years as years/month/date or whatever your system format is in your spreadsheet.
2) Format your spreadsheet to display YYYY in custom format so only the year is display (this is purely for aesthetics)
3) Create your XY scatter plot
4) Format your X axis
5) On the right side of your screen scroll down to the bottom and expand the NUMBER menu.
6) In the Category box, select custom.
7) In the format code box, enter yy
8) Scroll up to the top and set you bounds minimum to the days since January 1 1900 for the first day of the year you want to look at. (enter the yyyy/mm/dd, or what matches your system, in some cell and then change it format to general. The number displayed is the number of days)
9) Under units, set major to 365 or 365.25 and this should keep your intervals at roughly 1 year. The longer the spread in years the slightly weird appearance your graph may have for 365 option.

.NumberFormat sometimes returns the wrong value with dates and times

It seems that every week or so someone posts a question about dates being converted (corrupted?) to American format. Like many others, I have attempted to help but the problem is elusive. I now wonder if I have discovered the cause.
I am working on an application in which I need to extract data from an Excel worksheet and output it as strings formatted to match the value the Excel user can see. So if the value is “1” formatted to display as “1.00” then I want the string to be “1.00”.
I achieve this effect by testing the cell value to be a number, date or time. If it is, I retrieve the number format and use it to format the cell value so:
With .Cells(Row, Column)
Output string = Format(.Value, .NumberFormat)
End With
In most cases this gives me exactly the output I require. However, sometimes I get American dates and times when the source is formatted as a UK date or time.
After much experimentation with Excel 2003 and Excel 2007, I have discovered the cause. (I do not have access to Excel 2010 but from questions I deduce it has the same problem.) This question is in part intended to reveal this problem to the world because I can discover nothing on the internet to indicate that anyone else has noticed it. (No doubt someone will reply that they googled “xyz” and got the answer immediately.) However, the main purpose of this question is to seek suggestions for obtaining the result I need in all situations.
Typically I enter dates as, for example, “23mar12”. Excel recognises this as a date and formats it as “23-Mar-12”. I can select Format Cells and enter or select a custom format or select one of the date formats so I can have any format I can imagine wanting including non-English names for days and months.
However, in one case the format I select is not the format that is recorded: Custom format “dd/mm/yyyy” is recorded as Date format “* 14/03/2001”. This is not obviously a problem until further down the line.
I created a column of dates and times and formatted each with a different custom or standard format. I wrote a macro to extract the NumberFormat for each of these dates and times and write it as a string to an adjacent column. I also formatted the value using the number format and wrote that string to a third column.
In a number of cases the format selected and recorded by Excel was not the format returned by NumberFormat:
Excel format NumberFormat
Date: * 14/03/2001 m/d/yyyy
Date: * 14 March 2001 [$-F800]dddd, mmmm dd, yyyy
Date: 14/03/2001 dd/mm/yyyy;#
Date: 14/03/01 dd/mm/yy;#
Date: 14/3/01 d/m/yy;#
Date: 14.3.01 d.m.yy;#
Date: 2001-03-14 yyyy-mm-dd;#
Date: 14 March 2001 (1) [$-809]dd mmmm yyyy;#
Date: 14 March 2001 (2) [$-809]d mmmm yyyy;#
Custom: hh:mm:ss h:mm:ss
Time: * 13:30:55 [$-F400]h:mm:ss AM/PM
Time: 13:30:55 (1) hh:mm:ss;#
Time: 13:30:55 (2) h:mm:ss;#
Time: 01:30:55 PM [$-409]hh:mm:ss AM/PM;#
Time: 1:30:55 PM [$-409]h:mm:ss AM/PM;#
The values (1) and (2) in the Excel format column were added by me to indicate that there are two apparently identical formats. As can be seen from the NumberFormat column, in each case the second version suppresses a leading zero.
Most changes have no important effect. “[$-F800]” and so on are apparently dummy values with no effect. Apparently you can replace “F800” with an Microsoft country code to have the names of days and months translated to the language of that country.
However, the three standard formats that Microsoft marks with an asterisk are changed unacceptably. The dates are changed from little endian to middle endian; the time is changed from 24 hour to 12 hour and the day of the week has been added to “* 14 March 2001”.
The asterisk against the dates, references the comment: “Except for items that have an asterisk () in the Type list (Number tab, Format Cells dialog box), date formats that you apply do not switch date orders with the operating system.” The asterisk against the time, references the comment: “Except for items that have an asterisk () in the Type list (Number tab, Format Cells dialog box), time formats that you apply do not switch time orders with the operating system.”
If I have to, I can warn my users that standard date and time formats may not give the result desired. However, if they want the popular format “dd/mm/yyyy”, they cannot have it. “dd-mm-yyyy”, for example, is OK but custom format “dd/mm/yyyy” becomes date format “* 14/03/2001” becomes “m/d/yyyy”.
Returning to my opening point: is this strange handling of one particular date format the reason so many people claim their dates are sometimes being converted to American format and is this why the problem is so elusive? I have come across this type of problem elsewhere of one group of Microsoft programmers not knowing what another group are doing. Is this why some functions always work and other sometimes don’t? Some Microsoft programmers know where to look for the correct format and others don’t?
More importantly, for me, can anyone suggest:
How I obtain the true date or time format?
Some other way of determining the user’s chosen display format for a date or time?
BTW 1: I recall that thirty or so years ago I was told that the American military do not use month/day/year format; only American civilians use this format. Can anyone tell me if this is true?
BTW 2: The similar problem is with Excel colours. Excel holds its colours as "ggbbrr" while everybody else holds them as "rrggbb". The programmers for the .Net Excel inter-op were not told and and did not reverse the Excel colour number before using it to control the screen.
I have mainly come up against formatting and date issues when opening text files which have been saved with different regional settings. Two useful cell properties for dealing with this are:
.Text returns the cell value as it is displayed
.Value2 returns the unformatted cell value or date serial number.
As you say, standard date and number formats depend on windows regional settings and this may not be desired behavior as the same workbook can display differently in different regions. MS introduced the regional code prefixes in number formats (circa Excel 2000?) which enforce consistent display if needed but they need to be explicitly selected.
If you really want to see a date or number as the user entered it, you could extract the contents of the .xlsx file looking at the worksheet cell format and the shared strings xml definitions which list the number formats in the saved workbook. I don't really see a need to do this though as the underlying value is stored internally as a serial number and this will not change.
BTW 1: It's been almost 30 years since I was in the military...
I worked on helicopters and I was taught to use a format such as this in the aircraft logbooks: 3 Apr 12. So, that's how I still write dates. This way, there's no wondering about 4/3/2012 - is it April 3 or March 4?
I hacked this: I rewrite the original data in a known format. it relies on DateSerial and TimeSerial:
'Google spreadsheet stores dates in USA format (MM/DD/YYYY). We're in Australia, using DD/MM/YYYY, so we need to swap them.
'
With dc 'the cell who contains a date in USA format.
d = .Value 'capture value in USA format
t = TimeValue(d)
.NumberFormat = "dd/mm/yyyy" 'set to OZ format, so Excel knows the values were swapped in its internal math.
.Value = DateSerial(Year(d), Month(d), Day(d)) 'DateSerial takes y,d,m. We swap Month and Day components, to get OZ format dates
.Value = .Value + TimeSerial(Hour(t), Minute(t), Second(t))
dc.Font.Bold = True ' We bold the cells that are swapped, for debugging
End With
End If

Selection formula for capturing previous month data only in lotus notes

what selection formula we have to used for capturing previous month data only in a view in lotus notes 7.0 version
Please note that view selection formulas using variable times (#Now, #Today) are hell on server performance, since every time the view is accessed it needs to check when "now" is. In Notes and Domino 7, you would be far better off to use a hard-coded date range and a scheduled agent to change the view selection formula on a monthly or daily basis (depending on whether you mean "last month" or "between this date last month and today").
Please see the Performance Basics for Lotus Notes Developers whitepaper for more information.
You'll need to compare the date field in your documents to #Today minus one month, and select all documents with a date greater than or equal to that calculated date.
Use the #Adjust formula to calculate the current date minus one month:
SELECT #Adjust(#Today, 0;-1;0;0;0;0) >= YOURDATEFIELD

Resources