[Bug 1084431] Re: strftime returning date as null on en_IN locale

Edward Donovan launchpad at numble.net
Thu Nov 29 08:30:07 UTC 2012


** Package changed: ubuntu => eglibc (Ubuntu)

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to eglibc in Ubuntu.
https://bugs.launchpad.net/bugs/1084431

Title:
  strftime returning date as null on en_IN locale

Status in “eglibc” package in Ubuntu:
  New

Bug description:
  I have one application in which I uses strftime to format the date
  returned by localtime_r api into current locale specific format.
  strftime works fine with all the locales but for en_IN/en_IN.utf8
  locale it returns the date as null, which is making my application to
  behave improperly.

  To demonstrate this I have create a small program, which prints the
  date in current locale format.

  #include <stdio.h>
  #include <time.h>
  #include <locale.h>

  int main ()
  {
  time_t rawtime=time(NULL);;
  struct tm  l_time;
  char stime[100]="";
  setlocale(LC_ALL,"");
  printf ("Locale is: %s\n", setlocale(LC_ALL,NULL) );
  time ( &rawtime );
  localtime_r(&rawtime,&l_time);
  strftime(stime,30,"Date: %x",&l_time);
  printf ( "%s\n", stime);
  return 0;
  }

  Now, on my system I have set the locale as en_IN and en_IN.utf8.

  root at IWFVM00648:/var/opt/eate/tmp# export LC_ALL=en_IN.utf8
  root at IWFVM00648:/var/opt/eate/tmp# export LANG=en_IN.utf8
  root at IWFVM00648:/var/opt/eate/tmp# locale
  LANG=en_IN.utf8
  LANGUAGE=en_IN:en
  LC_CTYPE="en_IN.utf8"
  LC_NUMERIC="en_IN.utf8"
  LC_TIME="en_IN.utf8"
  LC_COLLATE="en_IN.utf8"
  LC_MONETARY="en_IN.utf8"
  LC_MESSAGES="en_IN.utf8"
  LC_PAPER="en_IN.utf8"
  LC_NAME="en_IN.utf8"
  LC_ADDRESS="en_IN.utf8"
  LC_TELEPHONE="en_IN.utf8"
  LC_MEASUREMENT="en_IN.utf8"
  LC_IDENTIFICATION="en_IN.utf8"
  LC_ALL=en_IN.utf8
  root at IWFVM00648:/var/opt/eate/tmp# ./t
  Locale is: en_IN.utf8
  Date:                                             ------------------> Date is not coming.

  root at IWFVM00648:/var/opt/eate/tmp# export LANG=en_IN
  root at IWFVM00648:/var/opt/eate/tmp# export LC_ALL=en_IN
  root at IWFVM00648:/var/opt/eate/tmp# ./t
  Locale is: en_IN
  Date:                                             ------------------> Date is not coming.


  
  Now, the same program I ran with en_US.utf8 and I got the correct date output.

  root at IWFVM00648:/var/opt/eate/tmp# export LANG=en_US.utf8
  root at IWFVM00648:/var/opt/eate/tmp# export LC_ALL=en_US.utf8
  root at IWFVM00648:/var/opt/eate/tmp# locale
  LANG=en_US.utf8
  LANGUAGE=en_IN:en
  LC_CTYPE="en_US.utf8"
  LC_NUMERIC="en_US.utf8"
  LC_TIME="en_US.utf8"
  LC_COLLATE="en_US.utf8"
  LC_MONETARY="en_US.utf8"
  LC_MESSAGES="en_US.utf8"
  LC_PAPER="en_US.utf8"
  LC_NAME="en_US.utf8"
  LC_ADDRESS="en_US.utf8"
  LC_TELEPHONE="en_US.utf8"
  LC_MEASUREMENT="en_US.utf8"
  LC_IDENTIFICATION="en_US.utf8"
  LC_ALL=en_US.utf8
  root at IWFVM00648:/var/opt/eate/tmp# ./t
  Locale is: en_US.utf8
  Date: 11/29/2012
  root at IWFVM00648:/var/opt/eate/tmp#


  -------------> the same program I have used on other Linux distos, but
  there this problem does not shows.

  
  Below are my system details:
  Linux IWFVM00648 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

  DISTRIB_ID=Ubuntu
  DISTRIB_RELEASE=12.04
  DISTRIB_CODENAME=precise
  DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"

  Please let me know what can be the possible solution for this.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1084431/+subscriptions




More information about the foundations-bugs mailing list