Win a copy of Java Mock Exams (software) this week in the Programmer Certification (OCPJP) forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

UTF date formatting

 
Manoj Raghuwanshi
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I am trying to write data to a csv file. It contains a date string.




In the string buffer (cvsBuffer) it is showing the date string in the correct format that I am expecting (mm/dd/YY). But after writing to csv file it is coming in mm/dd/yyyy format. Is it happening due to utf-8 foramtting? If yes please help me how to avoid this date formatting.

Thanks
Manoj
 
Jim Yingst
Wanderer
Sheriff
Posts: 18671
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No, I don't think there's any way that UTF-8 would cause that. It seems more likely that there's some other mix-up. Have you looked at the CSV file yourself, or are you relying on some other program which reads the file and parses that field as a Date?
 
Manoj Raghuwanshi
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
yes I saw the CSV file.
 
Ulf Dittmer
Rancher
Posts: 42970
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is mysterious. You have ascertained that in the StringBuffer the date is in mm/dd, and after it's run through toString and getBytes, it is in dd/mm? You could check whether it's still correct after the toString operation.
 
Manoj Raghuwanshi
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No, after toString its is mm/dd/yy but after getBytes(�utf-8�) it becomes mm/dd/yyyy.
If it is 08/05/07 it becomes 08/05/2007
 
Manoj Raghuwanshi
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No, after toString its is mm/dd/yy but after getBytes(�utf-8�) it becomes mm/dd/yyyy.
If it is 08/05/07 it becomes 08/05/2007
 
Jim Yingst
Wanderer
Sheriff
Posts: 18671
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Frankly, what you describe does not seem to be possible. I think there's likely been some mixup either before or after the getBytes() method call. To figure this out, I recommend putting some print statements as close as possible to the call, before and after:

This should give a better picture of where the problem really lies.
 
Ulf Dittmer
Rancher
Posts: 42970
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I just ran the following, and it confirms that all is well in this part of the code (meaning it prints "true").

Where are you seeing the "2007"? Some programs -like Excel- format CSV data upon import, thereby turning 2-digit years into 4-digit years, so that would not be a valid test.
 
Manoj Raghuwanshi
Ranch Hand
Posts: 75
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes Ulf it is indeed Excel issue. Excel is formatting the date. Thanks Ulf,Jim.
 
What are you doing? You are supposed to be reading this tiny ad!
the new thread boost feature brings a LOT of attention to your favorite threads
https://coderanch.com/t/674455/Thread-Boost-feature
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!